Brewer's CAP Conjecture and Its Proof

The CAP idea entered the literature not as a paper but as a keynote. At the ACM Symposium on Principles of Distributed Computing in July 2000, Eric Brewer delivered “Towards Robust Distributed Systems,” in which he conjectured that a distributed shared-data system can guarantee at most two of consistency, availability, and partition tolerance at the same time. At the time it was a conjecture, presented without a formal proof.

In 2002, Seth Gilbert and Nancy Lynch of MIT turned the conjecture into a theorem in their paper “Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services.” They gave precise definitions of the three properties in an asynchronous network model and proved that no system can deliver all three at once, putting the informal slogan on rigorous footing.

A decade later, Brewer wrote “CAP Twelve Years Later: How the Rules Have Changed” for IEEE Computer (2012). There he argued that the popular “two of three” reading is misleading: because partitions are infrequent, systems can offer both consistency and availability most of the time, and the genuine choice arises only during a partition. The article reframes CAP as a guide to partition detection, partition-mode behavior, and recovery rather than a one-time pick of two properties.

Together these three artifacts, the keynote, the proof, and the retrospective, form the canonical primary record of the CAP theorem and remain the starting point for reasoning about consistency and availability trade-offs in distributed data systems.