Distributed Consensus

Distributed Consensus — algorithms that ensure multiple nodes in a distributed system agree on a single value or sequence of values, despite network failures and delays, forming the foundation of reliable distributed systems.

The Consensus Problem

  • N nodes must agree on a value (e.g., "who is the leader?" or "what is the next log entry?")
  • Must handle: Network partitions, message delays, node crashes
  • Impossible to solve with guaranteed termination in asynchronous systems (FLP impossibility) — practical algorithms use timeouts

Raft (Most Popular Today)

  • Designed for understandability (vs Paxos complexity)
  • Leader Election: Nodes start as followers. If no heartbeat received → become candidate → request votes → majority wins → become leader
  • Log Replication: Leader receives client requests, appends to log, replicates to followers. Committed when majority acknowledge
  • Safety: Only nodes with up-to-date logs can become leader

Paxos

  • Original consensus algorithm (Lamport, 1989)
  • Proposer, Acceptor, Learner roles
  • Correct but famously difficult to understand and implement
  • Multi-Paxos: Extension for sequence of values (replicated log)

Real-World Usage

  • etcd: Raft-based key-value store (used by Kubernetes)
  • ZooKeeper: ZAB protocol (Paxos variant). Coordination service
  • CockroachDB, TiKV: Raft for distributed transactions
  • Google Spanner: Paxos for global consensus

Distributed consensus is the hardest problem in distributed systems — but it's what makes databases, orchestrators, and cloud infrastructure reliable.

Take distributed consensus further

Ask the copilot about this term, or have our engineers assess it against your process.