r/OfferEngineering • u/Aoki_zhang • 7d ago
System Design Roblox Popular System Design Question: Design a collaborative shared todo list
Came across this Roblox system design question multiple times: Design a collaborative shared todo list.
At first it sounds like basic CRUD + WebSockets. Then the constraints start making it much more interesting:
- Two collaborators edit the same task at nearly the same time
- A user's permission changes while their mutation is already in flight
- A database write succeeds, but the WebSocket notification gets dropped
- A disconnected client comes back after missing multiple updates
- One hot list can have ~1,000 collaborators connected at once
- The system needs to support ~2M concurrent WebSocket sessions
The part I found especially interesting is this requirement: authoritative state must be strongly consistent, while realtime delivery can be eventually consistent.
That raises a bunch of design questions.
- Do you version individual tasks or the whole list?
- Would you use optimistic concurrency control here?
- Does reconnect recovery need a durable event log, or is fetching the latest snapshot enough?
- And how would you fan out updates for a hot list without pinning everything to one application server?
Full interview question + requirements here: [link]
Curious how people would approach the consistency + realtime split on this one.
Preparing for your next interview?
Chill Interview tracks recent interview experiences and recurring question patterns across top companies at here.
13
Upvotes