sync-all-two-rounds-suffices

Status: IN

`CRDTReplicaGroup.sync_all` runs exactly 2 rounds of all-pairs sync, which is sufficient for convergence of any state-based CRDT with a commutative/associative/idempotent merge

Source: entries/2026/05/29/conflict-free-replicated-data-types-crdts.md

Example

def sync_all(self):
    for _ in range(2):  # two rounds guarantees convergence
        for a in self.replica_ids:
            for b in self.replica_ids:
                if a != b: self.sync(a, b)

JSON