CAP Theorem: not what we thought it was, not what we are looking for

The CAP theorem is often used to classify distributed systems, and the “two out of three” rule is often quoted. But the CAP theorem is widely misunderstood. What are the exact terms of the CAP Theorem? How does it differ from Brewer’s original CAP Conjecture? Where does CAP fall short of meeting practical engineering expectations?

Let us review the definitions and proof of the CAP Theorem, see some hidden assumptions, and attempt to apply these to modern distributed systems. We will challenge the common misconception that systems should be defined by CAP properties, or, indeed, that the CAP Theorem model is one to pursue. We discuss the conjecture, the theorem, and what we can expect to achieve in modern distributed systems.

We will apply logic, math, engineering principals and a pragmatic approach.



Shlomi Noach


Engineer and database geek

Shlomi is an active MySQL community member, authors orchestrator, gh-ost, common_schema and other open source tools, and blogs at

Shlomi works at GitHub