OrbitDB is a database engine that is built on top of the Interplanetary File System, or IPFS.
You can consider IPFS to be the distributed "hard drive" where all data are content-addressed and retrievable from a peer-to-peer swarm. It then follows that OrbitDB is the distributed database that lives on that hard drive.
OrbitDB creates and manages mutable databases and provides an extremely simple interface, centered around the IPFS get
and set
functions. From these simple underpinnings, OrbitDB manages a great deal of complexity to store these databases, in a distributed fashion, on IPFS. OrbitDB achieves this by building structures called Conflict-free Replicated Data Types, or CRDTs. CRDTs are essentially logs with specifically-formatted "clock" values that allow multiple users to perform independent and asynchronous operations on the same distributed database. When the peers share these logs with each other, the clock values ensure that there is no ambiguity about how their disparate entries will be put back together.
Beyond that, what should you as the developer understand about OrbitDB?
OrbitDB is packaged as a Node.js library, available here. JavaScript was chosen because of its popularity in the programming community, its ubiquity in web browsers, and its interoperability with the JavaScript implementation of IPFS, called js-ipfs.
Work is currently underway to allow support for other programming languages via a common HTTP API.
OrbitDB operates on the model of strong eventual consistency meaning that operations can be taking place at places and times that you are unaware of, with the assumption that you'll eventually connect with peers, share your logs, and sync your data. This contrasts with Blockchain's idea of strong consistency where entries are added to the database only after they have been verified by some distributed consensus algorithm.
There is no built-in "double spend" protection in OrbitDB - that is on you, the developer, to implement.
OrbitDB is released under the MIT software license, which is an exceedingly permissible license. Organizations and individual developers are free to fork, embed, modify, and contribute to the code with no obligations from you, or from us. Of course, this also means there are no warranties as well.
Outside of a reference implementation called Orbit Chat, the OrbitDB team primarily focuses on making OrbitDB more robust, reliable, and performant. Our mission is to enable you, the developer, to build distributed applications that will break into the mainstream and allow your users true sovereignty and control over their data.