Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services

Reference

Gilbert, S., & Lynch, N. (2002, revisited 2012). “Perspectives on the CAP Theorem.” MIT / National University of Singapore. URL

Summary

This paper is the formal proof and later retrospective of Brewer’s CAP conjecture: in a distributed system subject to communication failures, no web service can simultaneously guarantee Consistency (atomic read/write), Availability (every request receives a response), and Partition-tolerance (the system continues to operate when messages are lost between nodes). The proof is elegantly short: partition the servers into two groups; a write on one side and a read on the other must answer, but the read cannot know of the write, so either consistency or availability must fail.

The authors situate CAP within the deeper trade-off between safety and liveness properties in unreliable systems — the very trade-off FLP formalized for consensus. Consistency is a safety property (“nothing bad happens”), availability is a liveness property (“something good eventually happens”), and the unreliability axis includes partitions, crashes, and Byzantine faults. CAP is then one specific instance of the general fact that safety + liveness are jointly unattainable in sufficiently unreliable systems.

The paper distinguishes practical regimes (always-consistent with best-effort availability; always-available with weak/eventual consistency; hybrid tactics) and connects to partial synchrony results (Dwork, Lynch, Stockmeyer) that quantify exactly how much timing reliability is needed. CAP has become a rallying slogan and a misused one — the paper explicitly warns it is a theorem about adversarial partitions, not a license to abandon consistency whenever convenient.

Key Ideas

  • CAP theorem: pick at most two of consistency, availability, partition-tolerance in an unreliable network.
  • Asynchronous impossibility: even without actual partitions, async delays force the same trade-off — you cannot distinguish a slow network from a partitioned one.
  • Safety vs. liveness lens: CAP is a concrete instance of a broader unreliability theorem.
  • Weak consistency models: eventual, causal, sequential — engineered escapes from strict CAP.
  • Synchrony continuum: fully synchronous → partially synchronous → fully asynchronous; feasibility varies along it.
  • Practical taxonomy: CP, AP, and CA-only-without-partitions system designs.
  • Not a license: the theorem is often cited to justify weaker-than-needed guarantees; read carefully.

Connections

Conceptual Contribution

You cannot have atomic consistency and full availability in the presence of arbitrary network partitions. This is not an engineering failure but a theorem; it forces every distributed system architect to declare — per operation, not per system — which axis they sacrifice when the network misbehaves, and to design explicit strategies for detecting, tolerating, and recovering from the chosen sacrifice.

Tags

#distributed-systems #CAP #consistency #availability #partition-tolerance #gilbert-lynch #foundational #safety-liveness

Backlinks