Distributed systems

Distributed consensus and multi-region data

A practical method for deciding where consensus belongs, what a network partition means for each transaction, and how regional services recover without pretending latency and consistency are free.

14 minute technical paperApplied engineering paper
Technical note 1

The decision starts with invariants

A practical method for deciding where consensus belongs, what a network partition means for each transaction, and how regional services recover without pretending latency and consistency are free.

A multi-region diagram can look reassuring while saying very little about correctness. Boxes appear in several locations, arrows connect them, and the word replication sits nearby. The real design starts elsewhere: which facts must never conflict? A payment reference must not settle twice. A username might need global uniqueness. A dashboard view can often lag. These are different consistency problems, even if they share a database product.

Write each invariant as a sentence that an operator can test. Then name the records and decisions that protect it. If two regions may accept a change to the same fact during a partition, the design needs deterministic conflict handling or a later reconciliation process that the business accepts. If no safe merge exists, route that decision through one consensus group or one write authority. Consensus is a tool for ordered agreement. It cannot decide business policy that nobody has specified.

Classify each operation as rejectable, delayable, mergeable or safe for local acceptance.
Keep the consistency boundary as small as the invariant allows.
Document the user-visible behaviour during partition before selecting replication mode.
Test the invariant against duplicate, late and concurrent requests.