{
  "status": "unknown",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-11",
  "slug": "partial-synchrony",
  "term": "Partial synchrony",
  "aliases": [
    "Partially synchronous system"
  ],
  "definition": "Partial synchrony models timing bounds that are unknown in advance or become guaranteed only after an unknown stabilization time.",
  "note": "Dwork, Lynch and Stockmeyer distinguish always-existing unknown bounds from known bounds that hold after an unknown global stabilization time. Communication delays and relative processor speeds are separate model dimensions. [partial-synchrony-paper]\n\nA protocol satisfying the eventual-bound contract preserves safety despite arbitrary delays; guaranteed termination also depends on eventual timing conditions and its fault assumptions. Stabilization is not a client-visible completion deadline. [partial-synchrony-paper]\n\nRaft illustrates the distinction: log safety does not depend on timing, but maintaining a leader and making progress do. Its timing guidance is not a measured service guarantee. [raft-timing]",
  "related": [
    "flp-impossibility",
    "failure-detector",
    "raft"
  ],
  "citations": [
    {
      "id": "partial-synchrony-paper",
      "title": "Dwork, Lynch and Stockmeyer. Consensus in the Presence of Partial Synchrony. JACM 35(2), 288-323, 1988; sections 1.2 and 5.",
      "url": "https://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf",
      "accessed": "2026-11-11"
    },
    {
      "id": "raft-timing",
      "title": "Ongaro and Ousterhout. In Search of an Understandable Consensus Algorithm, extended version (20 May 2014), section 5.6.",
      "url": "https://raft.github.io/raft.pdf",
      "accessed": "2026-11-11"
    }
  ],
  "provenance": [
    "DLS (1988), sections 1.2 and 5, defines the timing models. Raft section 5.6 provides a protocol-specific example, not a universal fault threshold or a deployment measurement."
  ]
}
