Multiplayer Collaborative Canvas · View 20 of 23 · Operations
Decisions
- Randomised operation-set replay is a build gate: the same operations, delivered in many orders, must produce byte-identical documents. Convergence is tested, never asserted (ADR-05).
- A live session never changes code version. A rollout drains idle documents onto the new build and leaves busy ones until they release, so no document is ever applied by two different implementations (ADR-17).
- Rollback is the same mechanism in reverse, which is why it needs no separate procedure.
Gates
- Convergence replay, operation fuzzing, and the acknowledgement latency budget — a build that passes correctness but misses p99 120 ms does not ship.
- Canary on 1% of new sessions with divergence watch; a single checksum mismatch stops the line.
Risks
- A long-lived document can hold an old version for hours. The platform accepts a bounded version skew in exchange for never hot-swapping the code that owns a document in memory, and caps it by forcing a release at the next idle window.