Structures
MvRegister
The ranger cannot discard Alice's open report or Bob's closed report. Carol must see both before she walks to Eagle Creek and resolves the disagreement.
The disagreement remains visible
A multi-value register keeps concurrent writes as alternatives, often called siblings. Alice had not seen Bob's report, and Bob had not seen Alice's, so neither write replaces the other.
| Replica | Visible alternatives after merge |
|---|---|
| Alice | Trail closed · Trail open |
| Bob | Trail closed · Trail open |
| Carol | Trail closed · Trail open |
One trail-status field
Keep both trail reports
Alice and Bob write without observing each other. Exchange both deltas and inspect the alternatives that every notebook retains.
Conflict rule Keep concurrent writes as siblings.
Alice
No status received
Field note trail-status: Trail open write identity A:1 · no other note received
Bob
No status received
Field note trail-status: Trail closed write identity B:1 · no other note received
Carol
No status received
Field note No note in this race Carol observes delivery
Decision evidence No alternatives yet.
- No writes shared yet.
Enable JavaScript to run the demo. The race and expected result remain in the lesson.
Race Alice's open report against Bob's closed report.
Carol resolves what she observed
Carol inspects the bridge, reads both alternatives, and writes a new status. That write replaces the siblings in her causal history. It cannot erase an unseen report from an offline hiker.
The deeper Atlas lab exposes the write tags, causal context, delayed messages, and observed resolution step.
Sources and implementation
The demo runs Watershed's MV-register kernel through the Atlas toolkit.