CAP Theorem and Consistency Models¶
In the presence of network partitions, a distributed system must choose between availability (responding to requests) and consistency (returning the most recent write); you cannot guarantee both simultaneously.
Tension Addressed¶
Consistency vs. Availability
Recognizable As¶
Consistency level configuration, eventual consistency, strong consistency, quorum reads/writes, split-brain scenarios, conflict resolution strategies
Canonical Sources¶
Brewer, "Towards Robust Distributed Systems" (CAP conjecture, 2000); Gilbert & Lynch, "Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services" (2002); Kleppmann, "Designing Data-Intensive Applications" (2017)
Transfers To¶
Distributed systems, caching strategies, multi-region deployments, offline-capable applications, any system requiring data replication
CAP is often misunderstood as always choosing two of three; in reality, partitions are inevitable in distributed systems, so the choice is between consistency and availability during partition events.
Related Concepts¶
- Eventual Consistency - Distributed Patterns