What is EmoDB?

EmoDB ("Emo") is a RESTful HTTP data store built on top of Cassandra that stores schemaless JSON objects and, most notably, offers a databus that allows subscribers to watch for changes to those events. It is designed to span multiple data centers, and features massive non-blocking writes, no synchronous cross data center communication, and schema-less json content.

At the very core, EmoDB is a distributed database with a built in streaming data platform.


All actions are performed with a RESTful API using JSON over HTTP. Client libraries are available independently for many programming languages.

Cross Regional Databus

The global databus notifies you only when changes become visible in your local data center giving you another way to achieve a kind of global consistency without requiring a GLOBAL-level write.

Multi-master conflict resolution

EmoDB employs a "JSON delta" specification that defines incremental updates to any json document. Each row is thus a collection of deltas that serves as a serializable CRDT for EmoDB's system of record

Built on top of battle-tested Cassandra

Bring all your existing operational expertise and tools for Cassandra maintenance.

Why do I need EmoDB

Perfect for SOA / Microservices

Microservices bring a lot of goodness to present day development. However, there is a thorny issue of sharing data among services. Service-to-service communication is not scalable, and leads to quadratic complexity. EmoDB's global databus provides out of the box support to any service to subscribe to the data it wants. Publishers who store data in EmoDB cover both real-time and bulk use cases, assured that their dataset is disseminated to every nook and cranny of the organization.

System of Record as a Knowledge Base

By explicitly separating storage from query you can store your data assets as entities without optimizing for retrieval. Emo databus allows for listeners to choose their own datastore for the entities they wish to watch and index. The System of Record is a knowledge base with known ontologies, instead of a data lake that usually becomes a data swamp.

Publish datasets for bulk

EmoStash scans point-in-time snapshots daily and exports it to desired file systems (S3, HDFS, etc.) for bulk users to run heavy Map/Reduce batch jobs on the entire dataset.

Built on Apache Cassandra

EmoDB relies on Apache Cassandra for persistence and cross-data center replication, so it comes with all the operational stability that Cassandra provides. You can take advantage of your existing Cassandra knowledge to maintain and operate an EmoDB cluster.

Ready to do something?

Check out the documentation for more information.