{
  "slug": "synchronous-replication",
  "term": "Synchronous replication",
  "aliases": [],
  "definition": "Synchronous replication makes successful completion depend on acknowledgement that a specified set of replicas has reached the processing stage required by the replication contract.",
  "note": "Name the acknowledgement boundary instead of assuming that synchronous means query-visible. PostgreSQL 18 distinguishes a standby filesystem write, durable WAL flush and transaction replay; configured synchronous standbys are required for remote waiting. This database usage is broader than a storage contract requiring completed remote disk writes. Required replicas add latency and their unavailability can block commits.",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "related": [
    "asynchronous-replication",
    "replication-lag",
    "mirroring",
    "io-fencing",
    "chain-replication",
    "log-sequence-number"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-12",
  "citations": [
    {
      "id": "pg-commit",
      "title": "PostgreSQL 18: WAL settings, synchronous_commit",
      "url": "https://www.postgresql.org/docs/18/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT",
      "accessed": "2026-10-12"
    },
    {
      "id": "pg-standbys",
      "title": "PostgreSQL 18: synchronous_standby_names",
      "url": "https://www.postgresql.org/docs/18/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES",
      "accessed": "2026-10-12"
    },
    {
      "id": "pg-streaming",
      "title": "PostgreSQL 18: warm standby and synchronous replication",
      "url": "https://www.postgresql.org/docs/18/warm-standby.html#SYNCHRONOUS-REPLICATION",
      "accessed": "2026-10-12"
    },
    {
      "id": "hesela-replication",
      "title": "Replication acknowledgements: received, durable, applied",
      "url": "https://hesela.com/analyses/replication-acknowledgements-durability-lag/",
      "accessed": "2026-10-12"
    }
  ]
}
