CAP Theorem Language
5 exercises — practise the vocabulary of distributed systems consistency: why partition tolerance is not optional, AP vs. CP system behaviour, the PACELC model, linearizability vs. eventual consistency, and responding to CAP challenges in design interviews.
0 / 5 completed
1 / 5
A principal engineer states: "The CAP theorem tells us that in the presence of a network partition, a distributed system must choose between consistency and availability." A colleague asks: "So which of the three properties — C, A, or P — can we always guarantee without any sacrifice?" What is the correct answer?
CAP theorem vocabulary — the partition tolerance misconception:
The most important insight in CAP is that partition tolerance (P) is not optional in any system with more than one node communicating over a network. Network partitions — dropped packets, split networks, timeout failures — are an unavoidable reality of distributed systems. You cannot design them away.
The practical choice is therefore: when a partition occurs, do you return possibly stale data (choose Availability) or return an error until consistency is restored (choose Consistency)?
Correct framing for architecture discussions: "The real CAP choice is CP vs. AP — not whether to tolerate partitions, but how to behave when partitions occur."
The most important insight in CAP is that partition tolerance (P) is not optional in any system with more than one node communicating over a network. Network partitions — dropped packets, split networks, timeout failures — are an unavoidable reality of distributed systems. You cannot design them away.
The practical choice is therefore: when a partition occurs, do you return possibly stale data (choose Availability) or return an error until consistency is restored (choose Consistency)?
| Property | Definition | Can you opt out? |
|---|---|---|
| Consistency (C) | Every read returns the most recent write — all nodes see the same data at the same time | Yes — you can sacrifice C to remain available during a partition |
| Availability (A) | Every request receives a (non-error) response — even if the data may be stale | Yes — you can sacrifice A to guarantee consistency (return errors until quorum is restored) |
| Partition Tolerance (P) | The system continues operating despite network partitions between nodes | No — in any multi-node distributed system, partitions will happen; P must be assumed |
Correct framing for architecture discussions: "The real CAP choice is CP vs. AP — not whether to tolerate partitions, but how to behave when partitions occur."