Consistency
A safety property
Nothing bad ever happens: every response is correct with respect to the writes that preceded it. A safety property is violated by a single wrong answer.
stale answers are the failure · correctness
M1 · Doing the Impossible
CAP is not a slogan about picking two of three. It is one instance of a deeper impossibility — you cannot guarantee both safety and liveness in an unreliable system — and reading it that way explains both why the wall is real and how engineers have always walked through doors in it.
This landing states the whole argument once: the two properties, the proof in brief and its harder consensus sibling, and the menu that replaces “two of three” with a design question asked surface by surface. The theory is settled and external (Gilbert & Lynch, Fischer–Lynch–Paterson, Brewer); echd's response is what this course proposes. The heart of the course — segmentation — arrives at M5.
step · hover to walk the proof A write completes in p1, the network splits, a read arrives at p2 — and p2 must return a stale answer or never return. Hover a step below to take it one move at a time.
Hover or focus a step to walk it; click to pin. Without scripting, all four read in sequence and the figure shows every marker at once.
The result is cleanest when its two halves are named for what they are. CAP is then one instance of a general fact about unreliable systems — which is what lets it transfer to settings far from a web register.
Consistency
Nothing bad ever happens: every response is correct with respect to the writes that preceded it. A safety property is violated by a single wrong answer.
stale answers are the failure · correctness
Availability
Something good eventually happens: every request eventually receives a response. A liveness property is violated by an answer that never comes.
silence is the failure · termination
The edge
A server has no bound on message delay, so it cannot distinguish a partition from a slow link — and so cannot promise to be correct only during partitions and responsive the rest of the time.
no message-delay bound · one instance of safety vs liveness
Why this framing carries the course: stating CAP as safety against liveness makes the trade legible. A surface that must never give a wrong answer is choosing safety; a surface that must always answer is choosing liveness; and under a partition, no surface can hold both. The first dive, M1.1, makes both properties precise and shows where the asynchronous model bites hardest.
The 2002 proof fixes the smallest interesting case. Split the network into two non-empty groups and lose every message between them; let a write complete in the first group, then read in the second. The reader has heard nothing from the writer, so it must either return the stale prior value — violating consistency — or never return, violating availability. The emulator above walks exactly this execution.
A corollary sharpens it to the asynchronous model. Since the reader cannot distinguish a dropped message from a delayed one, delay alone suffices: delivering the outstanding messages after the read still leaves the execution inconsistent — the wall stands even when no message is ultimately lost.
The register impossibility has a steeper sibling. Fischer, Lynch, and Paterson proved that consensus — every process agreeing on one value — is unsolvable by any deterministic protocol in an asynchronous system where even one process may crash; there is always an execution, with no actual failure, in which the protocol never decides.
The consequence for design is direct: agreeing is strictly harder than reading a register, so reaching for a quorum vote does not escape the trade — it relocates it. echd's consistency-first surfaces answer by avoiding the vote entirely, with a single owning writer per instrument, which M2 builds. The common case then pays no quorum, and the trade is segmented rather than defeated. The full proof and the register argument are the second dive, M1.2.
This landing states the argument end to end; each dive takes one movement to the depth a comprehensive treatment needs.
Consistency as a safety property, availability as a liveness property, the asynchronous model, and the general trade CAP is one instance of.
M1.2The two-group partition argument and its corollary, then the consensus impossibility (FLP) as the harder sibling.
M1.3The four coping strategies as the practitioner's menu, and why the real decision is per-subsystem behavior under partition.
The law in three clauses and the 14-byte branded-snowflake identity contract, proven by frozen transcripts across five runtimes.
this course rests on the contract for the seam that holds a segmented system together across surfaces that chose different trades.
/echomqThe Valkey-native bus and stream tier, rung by rung: the keyspace, the Lua inventory, the conformance suite.
the availability-first delivery and log surfaces of the mesh door here — M3 and M6.
Sources
Related