5. Design a Chat System
Send durable messages, reconnect devices and explain ordering and delivery receipts.
Pick a system. Work through the problem. Compare your approach.
Company tags are community-reported. Counts on cards show how many people reported that design.
Send durable messages, reconnect devices and explain ordering and delivery receipts.
Upload and share large files with resumable transfer, versions and safe metadata changes.
To push a message to someone you must find the one server out of hundreds that currently holds their connection — and connections are long-lived, unevenly distributed, and disappear without warning.
Price a trip, match a rider to a nearby driver who has ten seconds to accept, and never give one driver two rides.
Live prices to five million phones through per-symbol pub/sub, and market and limit orders over FIX that are never lost, sent twice or overspent.
A hundred people typing in one document, every copy converging, nothing acknowledged lost: one owner per document, an op log with snapshots, and fenced failover.
Every goal on 25 million open apps within two seconds: SSE or WebSockets, pub/sub to the right server, resume by seq, hot topics, reconnect storms and push.
Real-time rated chess with server-validated moves, lag-compensated clocks, pairing by rating and a million watchers on one game.
Design a team chat app like Slack: channels and DMs in real time, threads, unread counts and search. One-hour boards for junior, senior and staff, with the theory behind them.