When and why each might be right for you and your workload
Apache Cassandra is a wildly successful open source project that has broad use as a “system of access” database for applications. It is a NoSQL database that is billed as “the right choice when you need scalability and high availability without compromising performance”. It scales linearly, tolerates node failures, and replicates data across multiple locations to reduce latency & improve resilience. It implements a “query first” architecture.
Apache Cassandra delivers some of the same value as CockroachDB, however, the choice between one or the other can be summarized in their architectural approach. Ultimately, it comes down to these key differences that define and differentiates the two solutions:
- Apache Cassandra was primarily designed to deliver fast reads and writes for very explicit, predetermined queries, largely in order to speed slow changing, web apps.
- CockroachDB is architected primarily for high performant, consistent, distributed transactions and has substantial capabilities for distributed reads.
A good summary might be: CockroachDB delivers a distributed foundation for effortless scale and resilience found in Apache Cassandra but with the familiarity, ease and power of PostgreSQL on top. Choosing between them depends on your workload and what you need to accomplish.