The Consensus Problem
Given a set of processes that may fail (crash-stop), agree on a single value:
- Safety: all processes that decide, decide the same value
- Liveness: every non-faulty process eventually decides
- Validity: the decided value was proposed by some process
FLP Impossibility (Fischer, Lynch, Paterson 1985): no deterministic algorithm can guarantee both safety and liveness in a fully asynchronous system with even one crash failure.
Paxos sidesteps FLP by guaranteeing safety always and liveness only when the network is eventually synchronous.