1.What CAP actually says
The CAP theorem describes one specific moment: a network partition has split a distributed data system into two (or more) groups of nodes that cannot talk to each other, and a request arrives at a node that would need to coordinate with the unreachable side to answer safely. At that exact moment, the system has only two choices for that request — answer it anyway using only local, possibly-stale data (favoring Availability), or refuse to answer until the partition heals and the nodes can agree (favoring Consistency). It cannot do both, because doing both would require talking to a node it cannot reach.
Key features
- CAP applies specifically to a network partition — nodes that cannot reach each other but are each still running
- The choice is between Consistency (every read sees the latest write, or an error) and Availability (every request gets a non-error response, though possibly with stale data)
- Partition Tolerance is not really optional in a real distributed system — networks fail, so a system must have some defined behavior for that case
- The trade-off applies per conflicting operation during the partition, not as one global setting for the whole system for all time
- Formalized by Eric Brewer as a conjecture in 2000 and proven by Gilbert and Lynch in 2002 for the asynchronous network model
The two choices available during an actual partition
- Node A → Node B: network partition (A and B can no longer reach each other)
- Client 1 → Node A: write cart:42 = {qty: 1}
- Client 2 → Node B: write cart:42 = {qty: 3}
- Node A → Node B: AP: both accepted (diverges — must reconcile once healed)
Command
Partition detected -> request needs cross-partition data
-> choose C: return error/timeout until reachable
-> choose A: return local (possibly stale) answerCAP is a statement about one moment: a network partition plus a conflicting operation. At that moment, favor Consistency (refuse/delay until certain) or Availability (answer locally, possibly stale) — not both, for that operation.