FA-74904 / CRDT convergence / Member archive
LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 04
After relaying a value, a replica makes it win or lose ties it should not.
Case contract
Each replica holds a register [value, clock, writer] and a Lamport clock, all starting at [None, 0, ""] and 0. ["set", r, v] increments r's clock and stamps v with (clock, r). ["send", s, d] delivers s's register to d: d's clock becomes max(own, incoming clock) and d adopts the incoming register when (clock, writer) is lexicographically larger. Return values and clocks per replica.
Why this case matters
Last-writer-wins registers need total, replica-independent stamp ordering to converge.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| ring gossip converges | {"clocks": [1, 1, 1], "values": ["C", "B", "C"]} | {"clocks": [1, 1, 1], "values": ["C", "C", "C"]} | 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 ↗