ComposeDB on Ceramic is the world’s first decentralized graph database. With today’s release of ComposeDB Beta (v0.4), developers can easily build fully-composable Web3 applications on Ceramic Mainnet.
Combining Ceramic, GraphQL, and reusable data models, ComposeDB is a graph database that unlocks an interoperable data ecosystem for all applications built on it. It lets Web3 applications support data-intensive use cases like rich social features, identity and reputation, shared knowledge graphs, and dynamic collaboration.
What is ComposeDB?
📀 Powerful, decentralized graph database
ComposeDB is a decentralized property graph database designed for building data-intensive, highly-relational Web3 application use cases. ComposeDB’s graph database relies on popular GraphQL for powerfully expressive schemas, queries, and mutations.
🪐 Composable data models and data ecosystem
ComposeDB’s ever-growing, interoperable data ecosystem makes it easier to build apps and grow them faster than ever before. Developers can reuse existing plug-and-play models from the ComposeDB catalog to bootstrap their app with all data that exists on the network. Every additional ComposeDB integration adds to the overall data available for you to use when building your app.
🔌 Loads of Web3 integrations
ComposeDB is designed to play nicely with the rest of your Web3 stack. You can use ComposeDB with all popular Web3 wallets such as MetaMask and Phantom, along with other popular Web3 data protocols such as Sign in With Ethereum for authentication or Lit for encryption.
🔥 Powered by Ceramic, now faster than ever
ComposeDB is built on Ceramic’s Web3 event streaming network, so you can trust that it is decentralized, secure, verifiable, and fast. ComposeDB indexes Ceramic data, improving query performance.
What’s included in ComposeDB Beta?
The Beta release of ComposeDB includes all the core features needed for developers to build fully-composable Web3 graph data applications to Ceramic Mainnet. ComposeDB Beta (v0.4) introduces the following improvements over previous versions.
- ⏳ History Sync: History Sync brings full composability to ComposeDB, letting developers instantly sync the full history of all data associated with any model they add to their application
- 🔍 Query Performance: Server-side GraphQL query execution brings faster query speeds, more responsive applications, and better user experiences. It also makes ComposeDB more optimized to support popular GraphQL clients like Apollo and Relay
- ✅ GraphQL Types: We’re continually adding support for more GraphQL data types. Now you can use Enums and new Scalars in your ComposeDB schemas, letting you write more strict or expressive models
- 🔢 Future-Proof Models: Model versioning ensures data models created today are future-proofed against changes and upgrades to the data models protocol in the future
- 📖 Updated Docs & Guides: New ComposeDB docs make it easier to get started developing with better information, more examples, and detailed guides on data modeling, performing queries, and mutations
During Beta, Mainnet applications will be rate-limited by default to ensure the network remains performant under load. Apps that have previously deployed to Ceramic Mainnet are not impacted by this.
The Ceramic protocol and network infrastructure have been meaningfully improved to support ComposeDB’s Mainnet debut.
- 🔑 Self-Serve Mainnet: Developers can now onboard their node to Ceramic Mainnet in under 5 minutes without needing to contact any community members
- ⚓️ Improved Anchoring: The Ceramic Anchor Service (CAS) is responsible for finalizing Ceramic transactions by time-stamping them into the Ethereum Mainnet blockchain. This service has improved performance, providing more scalability and stability to the network
- 📌 Secure Pinning: A security hole has been closed, ensuring only node admins are able to pin and unpin streams on your Ceramic node
- 🛠 Improved Pubsub: Ceramic now works with a new version of IPFS Kubo, formerly named go-ipfs, to mitigate a pubsub flood issue with more proactive limiting. Thank you to Protocol Labs for helping us expedite this important fix 🙏. We strongly recommend this upgrade to improve stability, see this post for details on how to upgrade Kubo.
- 🚩 ComposeDB by Default: ComposeDB now runs by default on your Ceramic node. Previously, ComposeDB was only enabled through experimental ENV variables or CLI flags
Ceramic core devs are already working on supporting the most requested features and improvements. If something you want isn’t on this list, drop a post in the Ceramic Forum.
- Performance and Stability: Continual optimization across all parts of the Ceramic and ComposeDB stack. Particular focus on the speed of queries and history syncs as well as more robust network monitoring
- Complex Queries: Support queries that span multiple graph relationships. This will enable developers, for example, to get all posts by anyone a user follows in a single query, to get all data for an account, or to query specific fields within a model
- More GraphQL Types: The goal is to support as many native GraphQL data types and schema rules as possible, such as regex. The next data types to be added will likely be date and time scalars
- Evolvable Schemas: Support the evolution of schemas over time to better fit the development flow of most applications that launch with something simple at first and then add or change features. Today, models are immutable and once they are created they cannot be changed
- Model Catalog UI: A simple UI that makes it easier to find and use relevant and popular models, improving on today’s DX of using the ComposeDB CLI to discover models in the catalog
- Deployment Scalability: Enable larger-scale deployments of Ceramic and ComposeDB to support applications that require much greater scale, reliability, and uptime than can be provided by a single node. This may include clustering to unlock stability, high availability, and horizontal scale
Getting Started With ComposeDB
There are lots of resources to make it as easy as possible to get started developing with ComposeDB: