FA-74847 / CRDT convergence / Member archive
G-Counter gossip: all replicas increment one shared slot · case 02
Concurrent increments from different replicas disappear after gossip.
Case contract
Each replica keeps a grow-only map replica->count. ["inc", r, k] adds positive integer k to r's own slot; a non-positive k is rejected and counted. ["sync", src, dst] merges src into dst by pointwise maximum. Return per-replica values (sum of slots), the rejection count, and the first replica's sorted slots.
Why this case matters
State-based counters must converge under repeated, reordered and transitive gossip.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| repeated sync is idempotent | {"rejected": 0, "state": [["n", 5]], "values": [5, 5, 0, 0]} | {"rejected": 0, "state": [["a", 3], ["b", 2]], "values": [5, 5, 0, 0]} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗