Company attributes
Other attributes
OrbitDB is a serverless, distributed, peer-to-peer database that uses IPFS as data storage and IPFS Pubsub and CRDTs to automatically sync databases among peers to achieve consistency and to ensure that once all updates are received, all nodes have the same data. This is intended to make OrbitDB a consistent database with conflict-free database merges. Which is intended to make OrbitDB a good choice for decentralized apps (dApps), blockchain applications, and offline-first web applications. OrbitDB was built on top of the Orbit chat application, a peer-to-peer chat that runs on the OrbitDB and was the first application to make use of the decentralized database and the InterPlanetary File System, originally developed by Samuli Pöyhtäri.
The OrbitDB project is funded through Open Collective, which allows community members to directly fund OrbitDB and maintain the project as an open-source project.
OrbitDB provides various types of databases depending on a users data model and use case. These include the following:
- Log—where OrbitDB offers an immutable (append-only) log with a traversable history intended for use cases such as a message queue or "latest N" case.
- Feed—where OrbitDB offers a mutable log with traversible history in which entries can be added or removed, for use cases such as a feed, blog post, or a shopping cart.
- Keyvalue—where OrbitDB offers a key-value database similar to other key-value databases.
- Docs—where OrbitDB offers a document database to which JSON documents are capable of being stored and indexed by a specific key, which can be used to build search indices or version control documents and data.
- Counter—where OrbitDB can be used for counting events separate from log or feed data.
The InterPlanetary File System (IPFS) is a protocol used by OrbitDB to store and share data in a distributed file system. It does this by using content addresses to give each resource a unique identifier, and therefore when new content is added to IPFS it is given an address that often contains a hash. This creates a group of data that can be accessed by connected peers, and data retrieval allows multiple peers to respond at the same time if they have the data to ensure improved performance on high-latency networks. It also ensures the data in a network can be verified because OrbitDB's initial implementation of IPFS ensures consistency is replicated amongst peers and their database instances.
The IPFS has been used by some developers to try and solve challenges with hosting full applications at the edge. This has been done by deploying an IPFS swarm using network peers as points of presence and enabling Node.js apps to access the IPFS swarm and thereby access the corresponding OrbitDB data sets. This is capable because of OrbitDB's initial implementation of IPFS ensures consistency is replicated amongst peers and their database instances
The OrbitDB databases are implemented on top of ipfs-log: which is an immutable, operation-based and conflict-free replicated data structure (CRDT) for distributed systems. At the same time, the OrbitDB offers users a chance to implement and use a custom databases to meet their needs or use-case functionality if otherwise not offered by OrbitDB. This further allows peers in the network to go off grid, and when they reconnect to the network, their state will be in sync with other peers or nodes while inconsistencies throughout the entire system will be resolved. This allows OrbitDB's structure to be conflict-free while updating concurrently and independently and without need for replicas to coordinate.

