FAILURE MAP
← Case archive

FA-74908 / CRDT convergence / Member archive

LWW register with Lamport stamps: writer id outranks the clock · case 03

A replica with a large id wins even with a much older write.

Member previewVariant 3 · 3 implementations · 8 checks per implementation

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 fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
older state is ignored{"clocks": [4, 1, 4], "values": ["s2", "bb", "bb"]}{"clocks": [4, 4, 4], "values": ["s2", "s2", "s2"]}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 ↗