Multiplayer Collaborative Canvas  ·  View 19 of 23  ·  Operations

Session Lifecycle

The ring every document travels, and the step a host loss skips.

Editable source SVG draw.io All views
Admitted capability bound Live sequencing Checkpointed every 30 min Idle 60 s grace Released lease dropped Re-hosted epoch + 1 Document session one authority first op 30 min cadence last client leaves final snapshot reopen or host loss clients reattach Session Lifecycle — Admission to Release and Back Application we own Data store Security / platform An idle document costs storage and nothing else, and a lost host enters the same ring one step earlier than a clean release. v 1.0 · owner Platform Architecture · date 2026-10

Decisions

  • A session is created by the first client and released 60 s after the last one leaves, with a final checkpoint on the way out. Idle documents therefore cost storage and nothing else.
  • Release and host loss enter the same ring: a clean release writes its snapshot first, a loss does not, and the difference is only how much log the next host replays (ADR-10).
  • The epoch increments on every re-host, which is what makes the previous host's writes rejectable forever rather than only during the handover (ADR-03).

Consequences

  • Session placement is cheap and frequent, so the platform must tolerate thousands of sessions starting and ending per second at peak — placement is a lease claim, not a scheduling decision.
  • Because sessions are short-lived, a code rollout can be a drain rather than a migration (view 20).

Assumptions

  • 60 s idle grace; checkpoint every 30 minutes of activity and on release.