TLDR; Pick two out of three
- Consistency (close to local, linear behavior)
- Availability (all active nodes answer every query)
- Partition tolerance (resistance to failure, network or otherwise)
Definition
The CAP theorem, formulated by Eric Brewer, states that in a distributed data system, it is impossible to simultaneously guarantee all three of the following properties: Consistency (every read receives the most recent write or an error), Availability (every request receives a response, even if it may not reflect the latest state), and Partition Tolerance (the system continues to operate despite network failures that split communication between nodes). A distributed system can only fully satisfy two of these at any given time, which leads to trade-offs in system design: CP systems favor consistency and partition tolerance, AP systems favor availability and partition tolerance, and CA systems favor consistency and availability but only when partitions don’t occur. This theorem guides architectural decisions for databases and distributed applications.
Misc
- Creation date-time: 2022-12-31 10:47:47
- Source: lvh - Distributed Systems 101 - PyCon 2015