HLDArena
HLD-317·Messaging & Fan-out
Hard · 1,500 pts

Multiplayer Infinite Canvas & CRDT Vector Sync (Figma/Miro)

Design Figma / Miro’s real-time multiplayer board server synchronizing CRDT vector property deltas, viewport-culled cursors, and durable board snapshots.

Max p99
≤ 55 ms
Availability
≥ 99.5%
Budget
≤ $8,300

Functional Requirements

  • FR-1POST /boards/{board_id}/ops — Sequences fractional-index CRDT node mutations and persists WAL.
  • FR-2GET /boards/{board_id}/state — Loads latest compacted snapshot + recent op log for joining editors.
  • FR-3PATCH & DELETE /boards/{board_id}/ops — Updates, cancels, or deletes board_id records and immediately invalidates or updates cached state (read-after-write).
  • FR-4Joining/refreshing editors must see latest committed strokes (read-after-write) under 55ms p99.

Workload Profile

Workday Workshops42,000 State/Sync Read RPS / 11,000 CRDT Op RPS
All-Hands Brainstorm Peak115,000 Read RPS / 28,000 Op Write RPS
Active Working Set30 GB active multiplayer scene graphs
Contention Profile500 simultaneous editors mutating the same board_id room

Consistency Model

Read-after-write snapshot + WAL replay per board_id so page reloads never drop recent vector edits.

Design Write-up
0 boxes · 0 edges
0 words
Hidden Cases #4–#7 run automatically on Submit
Case 1: Smoke & API ContractInput Workload
Read RPS
2,000 rps
Write RPS
400 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 110 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology