Skip to content

5.2. Consensus Algorithms

Consensus is the problem of getting a group of nodes to agree on a single value despite failures — and the FLP result proves it is impossible to guarantee in a fully asynchronous network. Every practical consensus algorithm is a way of living with that impossibility: guaranteeing safety always, and liveness only when the network behaves. This chapter covers why consensus is hard, then Paxos and Raft as the two answers the industry actually ships, plus their derivatives (Zab, etcd) and the Byzantine variants that tolerate lying nodes.