Martin Kleppmann also hated the CAP theorem

Categories: Product, Startup

Summary

The CAP theorem's popular "pick two of three" framework is fundamentally incomplete and hand-wavy, misleading engineers about distributed system tradeoffs. Even renowned systems expert Martin Kleppmann publicly critiqued it, validating what many practitioners intuitively sense but rarely articulate.

Key Takeaways

  1. CAP theorem oversimplifies distributed systems into three binary choices (consistency, availability, partition tolerance), but the two-out-of-three framing misrepresents actual system design tradeoffs and constraints.
  2. The theorem conflates data consistency (sync across partitioned regions) with availability (server uptime), missing nuanced scenarios where systems exhibit partial consistency or selective availability under real partition conditions.
  3. Distributed system behavior depends heavily on partition tolerance specifics—how the system behaves when disconnected matters more than the CAP binary, requiring case-by-case architectural analysis rather than blanket theorem application.
  4. Authority validation matters: When recognized experts like Martin Kleppmann publicly critique widely-accepted frameworks, it signals permission for practitioners to question dogma and develop more nuanced mental models for their specific context.

Related topics

Transcript Excerpt

One thing we were just talking about before we started is the CAP theorem and how you also had a similarly weird relationship with it. >> It's a pretty simple theorem described awkwardly sometimes. You have three choices and you can pick two of three. There is consistency. That's data consistency. So in like a distributed system where you have data that's partitioned in different regions. It can go out of sync. And then there's availability where both servers available to read or maybe one went down. [music] And then the third one is partition tolerance. Maybe the system becomes disconnected. How is it going to behave? The two out of three framing is used a lot. It's not super accurate. And the entire theorem is very incomplete. And so CAP theorem felt hand-wavy to me. I didn't really like…

More from Pragmatic Engineer