System Design Nuggets

System Design Nuggets

Beyond CAP Theorem: Understanding PACELC for System Design Interviews

CAP vs PACELC: Understand why distributed systems must trade off consistency, availability, or latency, and how to navigate these choices.

Arslan Ahmad's avatar
Arslan Ahmad
Mar 10, 2026
∙ Paid
PACELC

This blog demystifies the CAP theorem and its extended counterpart PACELC – two fundamental concepts in distributed systems that explain why you can’t have perfect consistency and availability at the same time.

Imagine you have a social app that must always show the latest posts (consistency) and never go offline (availability).

One day a network glitch hits and some servers can’t communicate.

Do you stop updates to keep data uniform, or keep the service running with potentially stale data?

This scenario highlights the classic consistency vs. availability dilemma in distributed systems.

The CAP theorem is a famous guideline that basically says when a network partition occurs, you have to choose between consistency and availability – you can’t fully have both.

But that’s not the end of the story.

Enter PACELC, an extension of CAP that asks: even when the network is fine, would you trade some consistency for better latency (speed)?

In this blog, we’ll explore CAP vs. PACELC and see why both matter, especially if you’re preparing for system design interviews.

What is the CAP Theorem?

The CAP theorem states that a distributed system cannot simultaneously guarantee all three of the following: Consistency, Availability, and Partition Tolerance.

In simpler terms:

  • Consistency (C): All nodes see the same data at the same time. Every read gets the latest write, like having one up-to-date copy of the data across the cluster.

  • Availability (A): Every request to a non-failing node gets a response, even if the returned data isn’t the most recent. The system remains accessible (it doesn’t hang or throw errors outright during a failure).

  • Partition Tolerance (P): The system continues to operate despite network partitions. A partition is a communication break between nodes – a partition-tolerant system keeps going even if the network splits the cluster into parts.

According to CAP, you can only have two out of these three properties in a given moment.

And since real distributed systems cannot avoid partitions, you inevitably face a choice: consistency or availability during a split – you can’t achieve 100% of both.

For example, a traditional SQL database (ACID-compliant) typically favors consistency over availability – if it isn’t sure it has the latest data, it might block or reject some requests (making it a CP system under CAP).

Keep reading with a 7-day free trial

Subscribe to System Design Nuggets to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2026 Arslan Ahmad · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture