4. Design a Notification System
Deliver email, push and SMS with preferences, retries and honest delivery status.
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.
Deliver email, push and SMS with preferences, retries and honest delivery status.
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.
Take bids on 10 million live auctions with one consistent highest bid, lose none, push the price to every watcher and end each auction fairly.
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.
Live comments for millions of viewers: SSE streams, a Redis channel per video with co-located viewers, sampling and CDN snapshots for hot videos.
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.
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.
Find restaurants that deliver to you, check out without double charges, time couriers to the kitchen and track them live.