FAQ: The difference between Ceramic/ComposeDB and TheGraph

Sharing a question we get asked a lot:

What is the difference between Ceramic and TheGraph?

TheGraph is a service for indexing and querying data from other L1 and L2 blockchains. You do not write data to TheGraph, you write data to the blockchain and then query it with TheGraph. Ceramic is more like a decentralized version of a traditional database (like Postgres or MongoDB). Its optimized for writes of non-financial user data and provides its own built-in indexing and querying functionality (via ComposeDB). So they’re pretty different, and I think a better question than Ceramic vs TheGraph is Ceramic vs writing to a traditional blockchain and reading via TheGraph.

For the latter, I think there are a few differences between Ceramic and a traditional blockchain (possibly with an indexing solution like TheGraph):

  1. Ceramic is going to be much cheaper and more scalable. Because Ceramic does not support transferable assets like tokens or NFTs, and is instead optimized for data, we are able to utilize a very different consensus model compared to a financial blockchain which lets us be MUCH more scalable than any financial chain, even an L2.
  2. The developer APIs are much friendlier and more designed for traditional application read and write patterns. ComposeDB has built in support for schemas, strong types, relations (think JOINs), GraphQL APIs for complex queries etc. The developer experience is much more similar to using a traditional web2 database.
  3. The identity and access control model in Ceramic is more powerful and flexible. Using DIDs means you can use just about any blockchain wallet to create your account and sign your operations. In the future it can even support more complex DID methods that link multiple (possibly cross-chain) wallets together to control a single identity. We also integrate with the SIWX standard (an extension of the Sign-In With Ethereum standard to abstract it for use by any crypto wallet) which results in a better UX where the user only needs to sign a single message to start a session, and then can perform multiple writes without needing to sign a message in their wallet for each one.

Just edited my answer above to add the DID identity model as another differentiator for Ceramic

1 Like