Distributed systems enable computation and data storage across multiple independent nodes that coordinate to appear as a single coherent system, powering everything from cloud databases and microservices to content delivery networks and blockchain platforms. As systems scale beyond single machines and geographic boundaries, understanding the fundamental tradeoffs — between consistency, availability, partition tolerance, and latency — becomes critical for architects building resilient global infrastructure. The key mental model: every distributed system is a collection of tradeoffs, not a collection of solutions, and mastering these tradeoffs is what separates reliable production systems from fragile ones.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 158 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: CAP Theorem and Fundamental Tradeoffs
The CAP theorem is the starting point for reasoning about any distributed system, but PACELC extends it by addressing the latency-consistency tradeoff that occurs even in the absence of network partitions — which is the more common operating condition. Understanding BASE versus ACID, and knowing which quadrant a system occupies in the PACELC taxonomy, directly drives architectural decisions.
| Concept | Example | Description |
|---|---|---|
Choose 2 of 3: C+P, A+P | Only two of three guarantees simultaneously possible when a network partition occurs: Consistency, Availability, Partition Tolerance. | |
PA/EL (Cassandra) vs PC/EC (Spanner) | • Extends CAP: during Partition → choose A vs C; Else → choose L (Latency) vs C (Consistency) • more practical than CAP for normal operations. | |
All nodes see same data at same time | • Every read receives the most recent write or an error • all replicas must agree before responding | |
Every request gets non-error response | • System responds to every request even if some nodes are down • may return stale data during partition | |
System continues despite network split | System operates correctly even when network messages are lost or delayed between nodes. |