Multiplayer Collaborative Canvas · View 16 of 23 · Runtime
Decisions
- Presence and edits are separate channels. The cost of losing the ordering relationship between a cursor and the edit it precedes is accepted, because nothing in the product depends on it and the shedding independence is worth more (ADR-07).
- Presence is coalesced server-side to 10 Hz whatever the client sends, so a client cannot buy itself more fan-out by sending faster.
- Shedding order is declared: presence, then viewer broadcast, then non-essential telemetry. Edits and their acknowledgements are last, and are refused rather than deferred.
Why this is the cost page
- Presence is the highest-volume and least valuable traffic in the platform — 1.5 million messages/second after coalescing, against 120,000 operations/second.
- Its budget is capped at 25% of a multi-editor session's real-time message cost, and the coalescing rate is configurable without a deploy.
Assumptions
- Clients emit cursors at up to 20 Hz; the server publishes at most 10 Hz per user.
- A document may hold 200 editors and 1,000 viewers before further clients are admitted read-only.