Multiplayer Collaborative Canvas  ·  View 07 of 23  ·  Structure

Layered Architecture

Seven layers, one of which holds authority — and the rule that follows from that.

Editable source SVG draw.io All views
Clients Web editor local replica Desktop app Mobile viewer Plugin host Edge Front Door + WAF Admission authn, capability Token renewal Rate limiting Real-time Editor sockets Presence coalescer 10 Hz cap Web PubSub groups Shedding policy Session Sequencer one per document Conflict rules Catch-up Checkpoint writer Record Operation log per document Lease & epoch Derived Checkpoints Version index Assets & renditions Search feed Platform Entra ID Key Vault Azure Monitor Sharing & grants operations fenced append presence capability Layered Architecture External / third party Interface / broker Application we own Security / platform Data store Queue / topic synchronous event / async Only the Session layer holds authority; every layer above it is a replica and every layer below it is derived — except the Record layer. v 1.0 · owner Platform Architecture · date 2026-10

The rule between layers

  • Everything above the Session layer is a replica; everything below it except the Record layer is derived. That single sentence decides what is backed up, what is rebuilt, and what is simply lost on restart (view 11).
  • The Real-time layer is split from the Session layer on purpose: presence coalescing and viewer broadcast scale with connections, while sequencing scales with documents.
  • The Platform layer is on the admission path, not the edit path. A control-plane outage must not stop a document that is already open (ADR-14).

Omitted deliberately

  • Every layer writes Azure Monitor and reads Entra ID; drawing those edges would say nothing the reader does not assume.
  • The export and search consumers hang off the Derived layer and appear in views 09 and 10.

Risks

  • A layered drawing invites the belief that a request passes through every layer. It does not: a viewer never enters the Session layer, and presence never reaches the Record layer (view 16).