CAP Theorem
Consistency, Availability, and Partition Tolerance trade-offs
CAP Theorem
CAP theorem states that in a distributed system, you can only guarantee two of three properties simultaneously: Consistency, Availability, and Partition Tolerance. Since network partitions are inevitable, the real choice is between consistency and availability.
CAP Triangle
System Categories
- CP (Consistency + Partition Tolerance): MongoDB, HBase, Redis Cluster â favors correctness over availability. On partition, some nodes refuse requests.
- AP (Availability + Partition Tolerance): Cassandra, DynamoDB, CouchDB â favors availability over consistency. On partition, nodes serve potentially stale data.
- CA (Consistency + Availability): Traditional RDBMS (single node) â not truly distributed, so partition tolerance isn't needed.
âšī¸
In practice, most systems use tunable consistency. For example, Cassandra lets you set consistency level per query (ONE, QUORUM, ALL), trading between consistency and availability on a per-request basis.