pattern

Multi-Leader Replication

also called Multi-Master, Active-Active Replication

Accepting writes at more than one node and replicating between them, which removes the single-primary bottleneck and introduces write conflicts.

Attractive for three genuine reasons: writes are served locally in a multi-region deployment, no single primary caps write throughput, and a region can continue accepting writes when isolated.

It costs you the guarantee that made single-primary simple. Two nodes can accept conflicting writes to the same record, and when they exchange, something must decide. The available strategies are all compromises. Last-write-wins is simple and silently discards data, and it depends on clocks, which lie. Conflict-free replicated data types (CRDTs) merge mathematically without loss, but only for data types with the right structure — counters, sets, sequences — not arbitrary business objects. Application-level resolution is correct and requires a business rule for every conflictable field. Sibling versions, preserving both and asking later, is honest and pushes the problem to the user.

The design move that avoids most of it: partition writes so each record has one home leader. Home each customer, tenant or account to a region that owns its writes; other regions read locally and forward writes. That converts a conflict-resolution problem into a routing problem, which is far easier, and it is what most large multi-region systems actually do.