Problem statement
Design the real-time sync backbone for a shared infinite whiteboard: a team drops shapes, strokes, and sticky notes on a canvas together, and everyone's board converges to the same state as edits fly in concurrently and out of order. It is the collaboration engine, plus the durability and late-joiner catch-up around it.
Operating context. Each open board is a live session; collaborators emit mutations (add, move, edit, delete an object) that must reach everyone else almost instantly. Edits are concurrent and can arrive out of order, so the system must converge deterministically rather than last-write-wins-clobber. The board is durable — reopen it tomorrow and it is exactly as left. A late joiner, or someone reconnecting after a drop, must load current state fast even on a board with a huge number of objects, then resume the live stream.
Out of scope. The rendering engine and client-side canvas, authentication and sharing permissions, media/asset upload for embedded images, and export to static formats. Assume an auth layer authorizes each collaborator and hands you a board and user identity.
What to produce. A high-level architecture covering: the sync protocol and how concurrent edits converge (ordering and conflict resolution); the session/fan-out layer that broadcasts mutations to a board's collaborators; the persistence model (operation log plus periodic snapshot) and compaction; the late-joiner catch-up path for large boards; and the failure story on a node crash or reconnect storm. Sketch the components and the life of one mutation from client to all peers and to disk; we will probe specifics in checkpoints.
Requirements
This assessment is a Premium feature.
The statement above is free to read. The functional and non-functional requirements, and the graded canvas that scores your design against them, come with Premium.
Topics
- System Design HLD
- Realtime Collaboration
- Data Crdt
- Scaling Fan-Out
- Storage Snapshot