CAP Theorem
Also known as:
Brewer's Theorem
Definition
The CAP theorem says a distributed data store can only give you two out of three of these during a network partition. Consistency means every read sees the latest write. Availability means every request gets a reply. Partition tolerance means the system keeps working when messages are dropped. Real networks always partition at some point, so the real choice is between CP and AP.
Popular reads
View All
Cursor Skills: How to Create and Use Agent Skills
Jun 23, 2026
Payment System Design: Ledger, Idempotency, and Settlement
Jul 18, 2026
X Algorithm Explained: How the Open Source Recommendation System Works
Jan 22, 2026
Complete Guide to Graph Data Structure: BFS, DFS, Adjacency List vs Matrix
Jan 20, 2026
The Complete HTMX Guide: From Zero to Production
Dec 22, 2025
Transactional Outbox Pattern: Never Lose an Event Again
Apr 07, 2026
Key Takeaways
- Partitions are not optional. CAP really forces a choice between consistency and availability while a partition is happening.
- CP systems like HBase, etcd, ZooKeeper, and MongoDB with majority writes will refuse writes they cannot safely replicate.
- AP systems like Cassandra, Dynamo, and Riak will keep accepting writes that may diverge and reconcile them later.
- PACELC adds more detail. When there is no partition, the trade off is between latency and consistency.
How It Works
- Imagine two replicas split by a network failure. A client writes to replica A. Replica B cannot see the write.
- If you want consistency, replica B has to refuse or delay reads. That gives up availability.
- If you want availability, replica B has to serve a stale read. That gives up consistency.
- There is no way to satisfy both during the partition. CAP is a statement about that one moment in time.
Where It Is Used
- DynamoDB and Cassandra default to AP. They favor availability and accept eventual consistency.
- Spanner and CockroachDB lean CP. They will refuse to commit during partitions to keep reads consistent.
- MongoDB lets you tune per write. Majority writes plus linearizable reads is CP leaning. w:1 with secondaryPreferred reads is AP leaning.