What CAP actually says
coreintermediateThe 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.
Think of it as
Picture two bank branches of the same bank that lose their phone line to head office and to each other, mid-afternoon, each still open for business. A customer walks into Branch A and asks to withdraw the full balance of a joint account. Branch A has no way to confirm whether Branch B already paid out the same balance to the other account holder an hour earlier. Branch A has exactly two honest options: refuse the withdrawal until the phone line is back and the branches can compare records (consistency wins, the customer is turned away), or pay out anyway on the balance Branch A last knew about (availability wins, but the bank now risks having paid out the same money twice). There is no third option where Branch A both stays open and guarantees it is not being fooled by stale local records — that is exactly the choice CAP describes.
What we're doing: Walk through a concrete split-brain moment and the two possible outcomes for the same write.
- 3
- This is the partition itself — both nodes are alive and reachable by clients, just not by each other.
- 6
- Two clients send conflicting writes to the same logical key, one to each side of the split.
- 15
- The AP choice accepts both writes, which is exactly what creates the conflict that must be reconciled later.
Why this works: CAP is easiest to misjudge in the abstract — seeing the same key diverge on two live nodes at once makes concrete why "just do both" is not on the table for that specific write.
Assuming a partition means a node is down
Wrong
Better
What you see: A postmortem describes a node as "down" when logs show it was actually accepting and answering client requests the whole time — it had simply lost its link to the rest of the cluster, which is a materially different failure with a materially different fix.
Why: The CAP theorem only has teeth because the partitioned node is still alive and capable of answering — a truly crashed node is just unavailable, which is a simpler and less interesting case than the live-but-isolated split brain CAP is actually about.
- 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)
The two choices available during an actual partition
Remember: CAP 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.
See also: cap is not pick two · real system cap choices

