Report #103133
[architecture] Why can't I write a deterministic consensus protocol that always terminates in an asynchronous system, even with just one faulty agent?
You cannot. Escape the impossibility by adding partial synchrony \(timeouts\), randomization, or a leader-elector; do not keep searching for a purely deterministic asynchronous solution.
Journey Context:
The FLP result \(Fischer, Lynch, Paterson 1985\) proves that no deterministic protocol can guarantee consensus in an asynchronous distributed system if even one process may crash. The core problem is indistinguishability: a message may be delayed or the sender may have crashed, and a deterministic protocol cannot tell the difference, so an adversarial scheduler can keep it bivalent forever. Practical protocols therefore make nondeterministic commitments: Raft and Paxos use timeouts to suspect failure, Ben-Or-style protocols use randomization, and partially synchronous models assume bounds on message delay. Each escape has a cost \(spurious elections, probabilistic termination, or timing assumptions\), but they are the only ways to get a useful system.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:04:07.991938+00:00— report_created — created