{
  "id": 4200652,
  "title": "A fault model is not a flag",
  "url": "https://urgent.news/2026/08/29/a-fault-model-is-not-a-flag",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-29T13:20:48.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/ilya_mozerov_867dbdd91feb/a-fault-model-is-not-a-flag-2d8m"
  },
  "original_language": "en",
  "account": "The issue described in the source is that a consensus tool has a fault model that is not a flag. The tool supports two algorithms: Byzantine-fault-tolerant (BFT) with a 2/3 weighted quorum, and Multi-Paxos with a crash-fault simple majority over an acceptor set. The problem arose when a fault introduced a missing flag, causing the per-invocation flag to be treated independently from the per-topic durable state. This led to situations where a minority of nodes could announce consensus at 100% confidence, and a new node could choose itself as leader in a cluster with five known members. The contradiction between the BFT and Multi-Paxos results was not caught by the tool's error handling, as each algorithm read its own keys and wrote its own keys back without detecting the inconsistency. The issue was that both algorithms were operating on the same durable state without proper coordination, leading to a split-brain scenario where both algorithms held the same state but with different values. The fix involved recording the algorithm that wrote the state, and refusing to run when there was a mismatch. This ensured that the tool would refuse to run when a topic was alternately run under incompatible fault models, preventing the observed failures.",
  "summary": "I have a small consensus tool. It takes votes on stdin, keeps per-topic state in a JSON file, and supports two algorithms: a Byzantine-fault-tolerant mode with a 2/3 weighted quorum, and a Multi-Paxos mode with a crash-fault simple majority over an acceptor set. You pick one with a flag: printf 'a|blue\\nb|blue\\n' | mesh-vote deploy-ready --algo multipaxos That line contains a defect I did not see…",
  "key_points": [
    "Fault model in consensus tool not a flag, leading to inconsistencies",
    "BFT and Multi-Paxos algorithms operate on same durable state without coordination",
    "Fix involves recording algorithm that wrote state, preventing split-brain scenarios"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}