Hall of FameMartin Kleppmann201515 min readintermediate
Please stop calling databases CP or AP
Summary
Martin Kleppmann argues that the CAP theorem is too narrow and widely misunderstood to be useful for describing modern databases, because its definitions of consistency, availability, and fault model are restrictive. He recommends retiring CP/AP labels and using precise, system‑specific trade‑off definitions instead.
- CAP defines consistency as linearizability, not the ACID C, and availability as every non‑failing node must respond.
- The theorem only models a single register and only considers network partitions, ignoring crashes, disk failures, and latency.
- Many “high‑availability” systems do not satisfy CAP’s strict availability definition, making CP/AP labels misleading.
- Providing linearizable semantics requires costly coordination; it is not a free property.
Database engineers and architects should care because relying on CAP labels can obscure real trade‑offs and lead to suboptimal design decisions.
6/10