Consensus Algorithms · Phase 10

Research Papers

Article 10.4 of 6

Jul 28, 2026 · devops · 20 min read · 4300 words advanced

Comparing the Paxos family — a master table.

devops distributed-systems paxos-family series-consensus

Twenty-two algorithms and protocols, thirteen production systems, ten phases — this article compresses all of it into one reference table and a decision framework, so that the entire journey from article 1.1 through article 10.3 becomes something you can scan in minutes rather than reread in full. This is deliberately the most reference-oriented article in the series: less narrative, more lookup table, designed to be the page you return to when choosing between algorithms for a real system rather than learning any of them for the first time.

The master table

AlgorithmFault modelNode countLeader?Distinctive mechanismArticle
Paxos / Multi-PaxosCrash2f+1Stable (amortized)Phase 1/2 promise-and-accept, majority overlap5.1-5.3
Viewstamped ReplicationCrash2f+1StableIndependently-derived views/primary, same safety core5.4
RaftCrash2f+1StableDecomposition for understandability, log matching5.5-5.6
ZabCrash2f+1StableStructural FIFO client order via zxids5.7
PBFTByzantine3f+1Rotating (view change)All-to-all pre-prepare/prepare/commit6.2
HotStuffByzantine3f+1Rotating (pipelined)Threshold-signature aggregation, three-chain commit6.3
TendermintByzantine3f+1Rotating (round-based)Immediate deterministic finality, slashing6.4
Narwhal/BullsharkByzantine3f+1None for disseminationDAG mempool separated from ordering6.5
EPaxosCrash2f+1 (larger fast quorum)None (per-command)Dependency-graph ordering7.1
Flexible PaxosCrashQ1∩Q2≠∅, asymmetricStableQuorums need only intersect, not both be majorities7.2
Fast/Generalized PaxosCrash2f+1Fast rounds skip leaderCommutativity, one-round-trip fast rounds7.3
Cheap/Compartmentalized PaxosCrashf+1 main + f standby / decomposedStableIdle standbys; role decomposition for scaling7.4
AtlasCrashNear-majority fast quorumNone (per-command)Flexible Paxos applied to EPaxos's setting7.5
CaesarCrash2f+1-ishNone (per-command)Proactive ordering certificates7.6
OmniPaxosCrash2f+1Stable, decoupled electionProduction-engineered library, first-class reconfiguration7.7
Matchmaker PaxosCrash2f+1StableDedicated matchmaker role for safe reconfiguration7.8
PigPaxosCrash2f+1StableGossip-relay fan-out instead of direct leader broadcast7.8
BPaxosCrash2f+1Decoupled ordering/disseminationNarwhal-style separation, crash-fault setting7.8
RabiaCrash2f+1None per-roundRandomization to simplify, not just to escape FLP7.8
QuePaxaCrash (adversarial-network-robust)2f+1Fast-path leader, no timeout dependencyRandomized async core, hedging delays, bandit tuning10.2
The four bundled Multi-Paxos assumptions, and who relaxes which Fixed leaderEPaxos, Atlas, Caesar,Rabia, QuePaxa's core Total orderGeneralized Paxos,EPaxos, Atlas, Caesar Symmetric quorumsFlexible Paxos,Atlas Uniform node costCheap Paxos,Compartmentalized Timeout-based liveness is a fifth axis QuePaxa (10.2) adds to this framing — not one of the original four, but the same kind of relaxable convenience assumption.

Fig 1 — Every Phase 7 variant, plus QuePaxa, mapped onto exactly which convenience assumption it relaxes.

Reading the table's patterns, not just its rows

Beyond looking up any single algorithm, the table rewards reading across it for patterns this series has built up piece by piece. Notice that the node-count column is almost entirely either 2f+1 or 3f+1 — there is no algorithm in this entire series' coverage that finds some clever way around article 6.1's proven threshold; the Byzantine/crash-fault boundary is a hard line every single entry respects, regardless of how sophisticated its other optimizations are. Notice, too, that the "leader?" column shows a genuine spread — stable, rotating, per-command-none, and QuePaxa's hybrid fast-path-with-fallback — but that every single entry, without exception, still relies on the same majority-overlap safety mechanism from article 3.3 underneath whatever leadership structure it uses on top. The table's real lesson isn't found in any one row; it's found in what stays constant across every row despite twenty different surface-level designs: majority overlap for safety, a small number of genuinely distinct fault-tolerance thresholds, and liveness as the dimension nearly every innovation actually targets.

A decision framework, distilled

Rather than a flowchart (which tends to oversimplify genuinely contextual decisions into false certainty), here's the actual sequence of questions this series' own material supports asking, in order, when choosing among this table's entries for a real system:

  1. Do you need Byzantine tolerance? If any participant might be actively malicious or compromised (open/permissionless networks, adversarial multi-party settings) — go to the Phase 6 family (PBFT, HotStuff, Tendermint, Narwhal/Bullshark) and accept the 3f+1 node-count floor (article 6.1). If all participants are operated by one trusted organization, crash-fault tolerance (2f+1) is sufficient and considerably cheaper.
  2. Is understandability/operational maturity your top priority? Raft (5.5-5.6), wrapped by a production system like etcd (8.1), remains the most battle-tested, most widely-documented, easiest-to-hire-for choice — the default this series would recommend absent a specific reason to deviate.
  3. Is your workload latency-sensitive with low real contention, spread across a wide area? Consider EPaxos-family leaderless designs (7.1, 7.5, 7.6) — but only if you've confirmed genuine low contention; under high contention, their advantage shrinks or reverses relative to a well-placed Raft leader (article 9.5's leader-placement discussion).
  4. Are you fighting adversarial WAN jitter or DoS-style conditions specifically? QuePaxa (10.2) targets exactly this, at the cost of real implementation complexity — appropriate for Meerkat-scale (10.3) deployments, likely overkill for a single-datacenter cluster.
  5. Is reconfiguration frequency or safety your main operational pain point? OmniPaxos (7.7) and Matchmaker Paxos (7.8) specifically prioritize this.
  6. Is throughput at very large validator/replica counts the bottleneck? HotStuff (6.3) for Byzantine settings, PigPaxos or BPaxos (7.8) for crash-fault settings — both directly targeting the fan-out cost this series traced from article 6.2 through 9.2.
Notice what this framework never recommends: picking an algorithm because it's the newest, or because a benchmark somewhere reported an impressive number under conditions that may not match yours (article 10.1's second pitfall, restated one final time). Every entry in the master table above is a genuine, defensible choice for some real set of constraints — the actual engineering skill this series has tried to build, across sixty planned articles, is knowing which constraints you actually have.

FAQ

Why isn't there a single "best" algorithm at the top of this table?

Because, as this series has demonstrated repeatedly since Phase 7, there genuinely isn't one — every entry optimizes a specific axis (understandability, latency, throughput, cost, adversarial robustness) at some honest cost on another. A ranked "best to worst" list would misrepresent the actual shape of this research area.

Which algorithms in this table are most commonly seen in real production systems today?

Raft (via etcd, Consul, CockroachDB, TiDB, YugabyteDB) and Multi-Paxos (via Spanner, Chubby) dominate real-world deployment by a wide margin, per Phase 8-9's coverage; the Phase 6 BFT family dominates blockchain and consortium settings; the more specialized Phase 7 variants and QuePaxa remain comparatively rare in production outside of research-adjacent deployments like Meerkat.

Should this table be treated as exhaustive?

No — it covers every algorithm this series chose to include, which is itself a curated, not exhaustive, subset of a much larger research literature. Article 10.6 (open problems) and the broader field continue producing new variants; treat this table as a snapshot grounded in this series' coverage, not a permanent, closed reference.

Takeaways

  • This series' twenty algorithms/protocols compress into one master table, comparable directly on fault model, node count, leader structure, and distinctive mechanism.
  • Every Phase 7 variant, plus QuePaxa, maps cleanly onto which of Multi-Paxos's bundled convenience assumptions it relaxes — fixed leader, total order, symmetric quorums, uniform cost, and (QuePaxa's addition) timeout-based liveness.
  • The decision framework is a sequence of honest questions about your actual constraints (Byzantine tolerance needed? Understandability priority? Contention level? Adversarial network conditions? Reconfiguration frequency? Scale?) — not a ranked list.
  • No algorithm in this table is simply "better" than the others in general — each is the right answer for a specific, nameable set of constraints, the central, repeated lesson of this entire series.

References & further reading

← 10.3 Meerkat next: 10.5 Benchmarking Consensus Algorithms →
© cvam — written in plaintext, served warm