01
Why Distributed Systems Are Difficult
Machines in a distributed system communicate over networks that introduce latency, packet loss, reordering, and partitions. Machines can fail independently while other machines continue operating.
02
Replication
Replication maintains multiple copies of data or computation to improve availability, performance, or fault tolerance.
- Synchronous replication prioritizes stronger coordination before acknowledging changes.
- Asynchronous replication can reduce latency but introduces propagation delay.
- Leader-based designs coordinate writes through designated replicas.
- Leaderless designs distribute responsibility across multiple nodes.
03
Consensus
Consensus protocols allow distributed participants to agree on a value or sequence despite failures under defined assumptions.
Consensus underpins replicated state machines and many coordination systems.