Learn how Fission is making it possible to query decentralized data with RhizomeDB.
What is RhizomeDB?
RhizomeDB is a protocol that executes a local-first edge database for querying decentralized data. It extends our ODD SDK with support for concurrent access to structured and unstructured data distributed in content-addressable networks and enables the creation of decentralized, collaborative applications 🤯.
How Does RhizomeDB Work?
RhizomeDB is built from the ground up for interoperability between applications, with a focus on real-time collaboration. One way of looking at Rhizome is a framework for CRDTs powered by a database engine. CRDTs, or Conflict-Free Replicated Data Types, offer eventual consistency without coordination between replicas, algorithmically resolve any inconsistencies, and guarantee that any replicas with different states will eventually converge into the same state.
RhizomeDB is also a tuple store. There are many benefits to using tuples, one of which is immutability. Every entry in the system must be entered in a consistent format, thereby vastly decreasing the number of mistakes that can be made that would interfere with the schema-building and querying process. It also makes it very easy to change how you view the data at read-time and even view your data as tables, graphs, columns, time series, etc.
In addition to the typical entity-attribute-value tuple of many stores, Rhizome includes a "causal" link that points to the data that the entry depends on. Most data don't directly depend on each other, but some, like the output of an analysis that uses other data, do. This causal link has a couple of advantages, including making the structure BFT, or Byzantine Fault Tolerant. It's a way of "showing your work" so to speak, so that if some nodes go down or malicious actors attempt to input false information, the system won't collapse.
The causal link also allows RhizomeDB to express Operations-based CRDTs, or CmRDTs, which can change operations that don't affect the end result. An added benefit is it can reduce the amount of necessary compute power.
What Makes RhizomeDB Special?
As far as we're aware, RhizomeDB is the first system that will combine encryption, CRDTs, and local-first database functionality (we're still building out the encryption part). Another way to look at is that RhizomeDB is a CRDT framework built on top of well-understood database tech. This means we can apply lots of optimizations over time, such as incremental view maintenance, precomputing strategies, distributed indexing, and more.
For developers, RhizomeDB means they no longer need to worry about consistency, synchronization, and data privacy when building apps with decentralized data - a huge win!
Furthermore, developers can interpret data according to their own needs. For example, say you wanted to build your own decentralized social network. RhizomeDB, in a sense, enables a BYOA (Bring Your Own Algorithm) approach to this type of project because it is customizable and prioritizes local-first data. If you wanted your social network to be a community solely focused on 1970s disaster films, you could input the relevant data and use tailored variables to query it. Then as mentioned previously, the CRDTs will use their built-in algorithm to do the rest of the heavy lifting and guarantee consistency. You can also remix and evolve your data over time.
RhizomeDB To-Do List Demo
Here is a proof-of-concept demo that Applied Researcher Quinn Wilton created.
Other potential use cases are a CRM, a shared media library...there are so many possibilities!
What is RhizomeDB's Current Status?
RhizomeDB is still in its early days and is a work in progress. However, it can already do impressive things like query and compute over multiple sources and users in a content-addressed store. It doesn't (directly) help you find the data you're looking for, but you could build an indexer out of RhizomeDB and IPVM to accomplish that.
At Fission, we believe working in public is the quickest way to test, iterate, and build a successful protocol. Therefore, today we are officially open-sourcing RhizomeDB under the Apache license! If you'd like to explore the code, head to the GitHub repo and wade in! Please be advised that there is currently no documentation, the codebase is unfinished, and it is not yet production-ready. All of this will come as soon as it's ready, but if you're intrepid and want to dive right in, have at it!
Fission Talks at IPFS Thing 2023 + Causal Islands
Quinn presented RhizomeDB at IPFS Thing in the Interplanetary Databases track:
She also gave a talk at Causal Islands, which we will have for you shortly.
What's Next for RhizomeDB
Building and documentation will be our focus going into the coming months. We also have plans to make RhizomeDB real-time and encrypted!