CockroachDB - kdwivedi1985/system-design GitHub Wiki

Compare CockrochDb with Postgres and YugabyteDb

Feature PostgreSQL YugabyteDB CockroachDB
Type Single-node RDBMS Distributed SQL + NoSQL Distributed SQL
SQL Engine Native PostgreSQL PostgreSQL-compatible (YSQL) PostgreSQL wire-compatible
Distributed ❌ No (requires external sharding Citus) ✅ Yes (shared-nothing, native Raft-based) ✅ Yes (built-in distribution & replication)
ACID Compliance ✅ Full ✅ Strong (YSQL), ❌ Not full with YCQL ✅ Strong
Replication ✅ Streaming/Logical (manual setup) ✅ Raft-based per tablet ✅ Raft-based per range
Sharding ❌ Manual (e.g., Citus, PL/Proxy) ✅ Automatic tablet-level sharding ✅ Automatic range-based sharding
Failover ❌ Requires 3rd-party tools ✅ Native via Raft + multi-leader reads ✅ Native via Raft
Consistency Model Strong (single node) Strong consistency (YSQL), eventual (YCQL) Strong consistency (serializable)
NoSQL Support ✅ JSONB, hstore ✅ YCQL (Cassandra-compatible), JSONB in YSQL ❌ Limited (JSON supported but no separate API)
Multi-region ❌ Complex, latency-sensitive ✅ Optimized for geo-distribution ✅ Excellent multi-region support
Performance (local) ✅ Fastest 🟡 Slightly slower (Raft overhead) 🟡 Slightly slower (global coordination)
Maturity ✅ Highly mature 🟡 Growing rapidly 🟡 Mature but still evolving
License ✅ PostgreSQL License (open) ✅ Apache 2.0 (open) ❌ CockroachLabs (Licensed)