Distributed, scalable, durable, and highly available message queue system.

Fork me on Github


Distributed, scalable, durable, and highly available message queue system

Cherami is a competing-consumer messaging queue that is durable, fault-tolerant, highly available and scalable. We achieve durability and fault-tolerance by replicating messages across storage hosts, and high availability by leveraging the append-only property of messaging queues and choosing eventual consistency as our basic model. Cherami is also scalable, as the design does not have single bottleneck.

Cherami is completely written in Go, a language for building highly performant and concurrent system software. Cherami uses several libraries that Uber has already open sourced: TChannel for RPC and Ringpop for health checking and group membership. Cherami depends on several third-party open source technologies: Cassandra for metadata storage, RocksDB for message storage, and many other third-party Go packages that are available on GitHub.

For the code repositories, see our Cherami server, Cherami Thrift APIs, and Cherami Go Client libraries on Github.