WebNative SDK A Portable Edge App Stack github.com/fission-suite
A presentation at IPFS þing in July 2022 in Reykjavík, Iceland by Brooklyn Zelenka
WebNative SDK A Portable Edge App Stack github.com/fission-suite
Just…
Just… An Encrypted-At-Rest File System, Location Independence, User Controlled Data, Self-Modifying Apps, & a Serverless Auth Protocol …in a tench coat
BROOKLYN ZELENKA @expede CTO @ Fission
Intro Condensing The Stack
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Developer 👩💻
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻 Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 Developer 👩💻
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 REST / JSON-RPC / GraphQL ↕ Current Server ⚙ Data Store 🗃 DevOps 📤 Developer 👩💻 Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 Developer 👩💻 Proposed
Intro Condensing The Stack Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 Current Users 👨🏫👩🏭🧑⚕👷 Browser 🖥 WebNative 🚀 REST / JSON-RPC / GraphQL ↕ Developer 👩💻 Server ⚙ Quick iteration 🔄 Data Store 🗃 DevOps 📤 Developer 👩💻 Focus on end users 💁 Lower barrier to entry 👨🎨 Proposed
Intro High Level Dependencies
Intro High Level Dependencies Compute ⚙
Intro High Level Dependencies Compute ⚙ Data 💾
Intro High Level Dependencies Compute ⚙ Data 💾 Auth 🎟
Intro Stack 1st & 3rd Party Dev’s App Business Logic & View API Platform Abstractions WebNative SDK ⬆ Apps ⬇ Core Technology Portable Computate WebNative Distributed Tasks Distributed Compute Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store Durable Structured Store WebNative Database O ine & Async Sharing Exchange Store Durable File Store WebNative File System Durable Data Command/Mutation UCAN ffl Auth & ID Global: Aggregation, Forms, Feeds Gossip Broadcast Read/Query Cryptree Networking DNS, IPFS, PubSub, Matrix Identity did:key
Intro Stack 1st & 3rd Party Dev’s App Business Logic & View API Platform Abstractions WebNative SDK ⬆ Apps ⬇ Core Technology Portable Computate WebNative Distributed Tasks Distributed Compute Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store Durable Structured Store WebNative Database O ine & Async Sharing Exchange Store Durable File Store WebNative File System Durable Data Command/Mutation UCAN ffl Auth & ID Global: Aggregation, Forms, Feeds Gossip Broadcast Read/Query Cryptree Networking DNS, IPFS, PubSub, Matrix Identity did:key
Intro Mini-Demo
Intro Mini-Demo
AuthN & AuthZ DIDs, Self-Authenticated History, UCAN, and More
AuthN & AuthZ Non-Extractable Keys
AuthN & AuthZ Non-Extractable Keys
AuthN & AuthZ Non-Extractable Keys 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 🏰🏰🏰🏰🏰🏰🏰 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 🏰🏰🏰🏰🏰🏰🏰 📝 🗝
AuthN & AuthZ Non-Extractable Keys 🦹 📝 🏰🏰🏰🏰🏰🏰🏰 🗝
AuthN & AuthZ DIDs 🔑
AuthN & AuthZ DIDs • W3C • Microsoft • Government of British Columbia • Based on public-key cryptography • Truly “universal” user IDs • Agnostic about backing • For users, devices, and more 🔑
AuthN & AuthZ .well-known
AuthN & AuthZ .well-known 👩💻
AuthN & AuthZ Wherefore Art Thou UCAN?
AuthN & AuthZ Wherefore Art Thou UCAN? DIDs say who you are
AuthN & AuthZ Wherefore Art Thou UCAN? DIDs say who you are UCANs show what you can do
AuthN & AuthZ Wherefore Art Thou UCAN? AuthN DIDs say who you are UCANs show what you can do AuthZ
AuthN & AuthZ Anatomy of a Capability
AuthN & AuthZ Anatomy of a Capability [ { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ]
AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] (URI)
AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, “can”: “crud/read” }, Action / “verb” { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] (URI)
AuthN & AuthZ Anatomy of a Capability [ Resource / “noun” { “with”: “http://example.com/alice/photos/”, (URI) “can”: “crud/read” }, Action / “verb” { “with”: “mailto:boris@fission.codes”, “can”: “msg/send”, “nb”: { to”: “/.*@fission.codes/” } } ] Extensible fields
AuthN & AuthZ Chain Witnesses
AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨
AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐
AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐
AuthN & AuthZ Chain Witnesses 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐
AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐
AuthN & AuthZ Chain Witnesses Root 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐
AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 Root Witness From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] From: 🧑🚀 To: 👨🦳 Caps: [💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐
AuthN & AuthZ Chain Witnesses 👨🎨 💐🍭🎨 👨🎨 🍭💐🎨 Root Witness Invoked From: 👨🎨 To: 🧑🚀 Caps: [🍭, 💐] From: 🧑🚀 To: 👨🦳 Caps: [💐] From: 👨🦳 To: 👩💻 Caps: [💐] 🧑🚀 🍭💐 👨🦳 💐 👩💻 💐
AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw
AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw
AuthN & AuthZ JWT → UCAN Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” “iss”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “aud”: “did:key:z6MkvXfPUv8bxtsVQiGo7Ntk4qKJNcgK2it52pc73teUpRLT”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” }, { “with”: “wnfs://demouser.fission.name/public/notes/”, “can”: “APPEND” } ], “prf”: [ “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvcGhvdG9zLyIsImNhc CI6Ik9WRVJXUklURSJ9XSwiZXhwIjo5MjU2OTM5NTA1LCJpc3MiOiJkaWQ6a2V5Ono2TWtwNUV zejlzMk1Ic3FZdkxvY2N5SHdYNVNleVpLcHE3OUd0NDVmRkdFWlI5OSIsIm5iZiI6MTYzOTYwO DI5MywicHJmIjpbXX0.4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDexo76kAw”, “eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCIsInVjdiI6IjAuNy4wIn0.eyJhdWQiOiJkaWQ6a 2V5Ono2TWtzWFFCZkw4b3d6dFRDSlRtN2hOUmY2YjE4WXhYUHAzaTY2b0pIbThMM1lHSiIsImF 0dCI6W3sid25mcyI6ImRlbW91c2VyLmZpc3Npb24ubmFtZS9wdWJsaWMvbm90ZXMvIiwiY2FwI joiT1ZFUldSSVRFIn1dLCJleHAiOjkyNTY5Mzk1MDUsImlzcyI6ImRpZDprZXk6ejZNa3A1RXN 6OXMyTUhzcVl2TG9jY3lId1g1U2V5WktwcTc5R3Q0NWZGR0VaUjk5IiwibmJmIjoxNjM5NjA4M jkzLCJwcmYiOltdfQ.MgYarLqy7RmQ1AIrqYL6cFy9z7a5WIAU-TYARPSgirOSszvar3_DNr25rbPretHbnT0mMVKyoaQXruR7KbrBg” ] } ✅ Signature kwRdqPN74pkcpXGgdk7Z7FW3M1mRR YaDE5ZgkG6srAuu6V6mvMVRdBLnD5 CWid-X4tDIKpliVjlCSLTntB4pCw
AuthN & AuthZ Proof Payload { Header { } “alg”: “EdDSA”, “typ”: “JWT”, “ucv”: “0.8.0” } “iss”: “did:key:z6Mkp5Esz9s2MHsqYvLoccyHwX5SeyZKpq79Gt45fFGEZR99”, “aud”: “did:key:z6MksXQBfL8owztTCJTm7hNRf6b18YxXPp3i66oJHm8L3YGJ”, “nbf”: 1639608293, “exp”: 9256939505, “att”: [ { “with”: “wnfs://demouser.fission.name/public/photos/”, “can”: “OVERWRITE” } ], “prf”: [] Signature 4TNhuHRrPG9aHo869HXlsNK8_FmlShQ5GzG 4itN2NKkyKTbAMoFwTuptG0XFgNIvHulPplVzZYDVDe xo76kAw
AuthN & AuthZ OAuth Sequence
AuthN & AuthZ UCAN Sequence 🕙 🕙
WebNative File System 💾📂🌳
File System Grouped by User, Not by App
File System Grouped by User, Not by App f f f Alice’s Stu Bob’s Stu Carol’s Stu
File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 f f f Alice’s Stu Bob’s Stu Carol’s Stu
File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 Alice’s Stu Bob’s Stu Carol’s Stu f f f Carol’s Videogame 👾
File System Grouped by User, Not by App Bob’s Photo Gallery 🖼 Alice’s Stu Bob’s Stu f f f Alice’s Music Player 🎶 Carol’s Stu Carol’s Videogame 👾
File System Persistent Versioning
File System Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0
File System Persistent Versioning Photos@r0 Vacation Avatars@r0 beach.png caricature.jpg Revision 0 🕙
File System Persistent Versioning Photos@r0 Photos@r1 Vacation Avatars@r0 Avatars@r1 beach.png caricature.jpg headshot.png Revision 0 Revision 1 🕙
File System Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 🕙 Avatars@r1
File System Persistent Versioning Photos@r0 ChildHasEvent Vacation Avatars@r0 beach.png caricature.jpg Photos@r1 InsertNew Revision 0 headshot.png Revision 1 🕙 Avatars@r1
File System Confluence
File System Confluence One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉
File System Confluence One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉 Single File History / “Causal Shadow”
File System Confluence F B E One of the first Merkle CRDT papers was from PL 🙌 Persistent data structure D Automatic file-level reconciliation Pluggable sub-file reconciliation (forthcoming) Basis of upcoming BFT Datalog “at scale” work 😉 A C Single File History / “Causal Shadow”
File System Mergable, Trivially F B E D A C
File System Mergable, Trivially F B E D A C
File System Mergable, Trivially F B E D A C
File System Mergable, Trivially F B E D A C
File System Sharing is Caring User Entry (stable) 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)
File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)
File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s)
File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s) Receiver Secret WNFS
File System Sharing is Caring User Entry (stable) Sender Secret WNFS 🔑 Implied Name 🔑 Foreign Entrypoint(s) 🔑 Symlink(s) Receiver Secret WNFS
File System Subgraph Access
File System Subgraph Access 🗝
File System Subgraph Access 🗝 🗝
File System Subgraph Access 🗝 🗝 🗝
File System Subgraph Access 🗝 🗝 🗝 🔩➡🗝
File System Skip Ratchet
File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards
File System Skip Ratchet current rev + 2n —2m current rev + 2n Ratchet keys for future (backwards) secrecy Skip ratchet KDF for log-time fast forwards O(2 * log n) Θ(1) 🎉
File System Dark Forest
File System Dark Forest
File System WebNative is Carcinising
Preview: Codename “Dialog” Embarrassingly Parallel Multiverse Database
Preview: Codename “Dialog” Property Graph XYZ Name: @expede From JAN-2000 🔒 Work: Fission From AUG-2019 KEB 🔒 Red Switches Switches: Blue From JAN-2020 From FEB-2020 Wireless
Preview: Codename “Dialog” Property Graph XYZ Name: @expede From JAN-2000 🔒 Work: Fission From AUG-2019 KEB 🔒 Red Switches Switches: Blue From JAN-2020 From FEB-2020 Wireless
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020 🏢
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 KEB Owner:XYZ From JAN-2020 KEB Switches: Blue From FEB-2020 👩🚀📱 🏢
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 👨🍳💻 KEB Owner:XYZ From JAN-2020 🏢 KEB Switches: Blue From FEB-2020 👩🚀📱
Preview: Codename “Dialog” A Sequel to SQL: Nonlinear DBs ➡⬅ XYZ Name: @expede From JAN-2000 ABC Name: @bmann From DEC-1999 KEB Type: Wireless Always 🔒 XYZ Work: Fission From AUG-2019 🔒 KEB Switches: Red From JAN-2020 👨🍳💻 KEB Owner:XYZ From JAN-2020 🏢 KEB Switches: Blue From FEB-2020 👩🚀📱
Preview: Codename “Dialog” Scale, Aggregation, & Real Time Global: Aggregation, Forms, Feeds Gossip Broadcast Collaboration, Chat, Instant Sync Soft Realtime Store
Preview: Codename “Dialog” Scale, Aggregation, & Real Time Collaboration, Chat, Instant Sync
✨ white paper.fission.codes ✨ ✨ github.com/ucan-wg ✨ brooklyn@fission.codes @expede