Roberto's blog

Understanding Distributed Systems 1.1

Coordination is expensive as it reduces the availability and performance of distributed applications (PACELC theorem). I have extended chapter 10 of Understanding Distributed Systems with a discussion of how to minimize coordination using one of the following patterns:

Section 10.4 describes chain replication, a widely used replication protocol that guarantees strong consistency. It has better performance than Raft because it keeps consensus off the critical path by delegating fault-tolerance to a dedicated “control plane.”

Section 10.5 is all about solving the CAP theorem using weaker consistency models. It discusses how to build eventually consistent replicated data types that converge to the same state (CRDTs) and shows how these ideas are used in practice to build distributed databases (Dynamo-like data stores). The CALM theorem is also introduced to define which applications are safe under eventual consistency.

Finally, the section explores causal consistency, a consistency model that is stronger than eventual consistency but weaker than linearizability. It’s particularly attractive for two reasons:

#Distributed Systems