← Lessons

quiz vs the machine

Platinum1800

System Design

The FLP Impossibility

Why perfect consensus is impossible in an async network.

5 min read · advanced · beat Platinum to climb

The result

The FLP impossibility, proved by Fischer Lynch and Paterson in 1985, states that in a fully asynchronous network no deterministic consensus protocol can guarantee termination if even a single node may crash.

Why it holds

In an asynchronous model there is no bound on message delay, so a node cannot distinguish a crashed peer from one whose messages are merely slow. The proof shows there is always a sequence of delays that keeps the protocol in an undecided bivalent state forever.

  • No shared clock means no reliable timeout in theory
  • One possible crash is enough to force the indecision
  • This blocks termination, not agreement or validity

What it does not say

FLP does not say consensus is useless. It says you cannot have all three of safety liveness and fault tolerance with certainty under pure asynchrony.

How real systems escape it

  • Partial synchrony assume delays are usually bounded
  • Timeouts and failure detectors that may sometimes be wrong
  • Randomization to break symmetry probabilistically

Paxos and Raft keep safety always and achieve liveness only when the network behaves.

Key idea

FLP proves no deterministic protocol can guarantee consensus termination under pure asynchrony with one crash, so real systems add timeouts or randomness to make progress in practice.

Check yourself

Answer to earn rating on the learn ladder.

1. What does FLP say is impossible to guarantee?

2. How do practical systems work around FLP?

3. What stays guaranteed in Paxos and Raft despite FLP?