49. Design an Online Auction like eBay
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.
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.
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.
Price a trip, match a rider to a nearby driver who has ten seconds to accept, and never give one driver two rides.
Show what 10,000 small warehouses can deliver within the hour in under 100 ms, and take multi-item orders without ever selling a unit twice.
Charge cards through the networks exactly once: idempotency keys, a card vault, timeouts as unknowns, signed webhooks, a double-entry ledger and reconciliation. One-hour boards for junior, senior and staff, with the theory behind them.
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.
Photos and videos for 500 million daily users: presigned multipart uploads, a processing pipeline, CloudFront and a hybrid fan-out feed.
Collect from 20,000 publishers by push, polls and crawls, file each article once into feeds by region and category, and serve a billion pages a day from the edge.
Search 10 million businesses by place, words and category, keep every average rating exact, and keep fake reviews out.
Search a billion posts a day by keyword, newest or most liked first, with an inverted index you build yourself.
Stacks of nearby people in under 300 ms, 2 billion swipes a day, and a match never missed even when both like at once.
Record runs and rides on the phone without signal, upload each once, show them to friends and rank athletes by week, month and year.
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.
Sell 10,000 units to a million people at noon with a lottery waiting room, a Redis gate before an Aurora ledger and holds that expire.
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.
Design for contention through a limited sneaker drop: row locks, conditional writes, expiring holds, fencing tokens, sagas and one writer per item.
An order checkout across payment, inventory and shipping, run as a saga.
Serve a product page a million times a second: a cheap query, replicas, Redis and the edge, with hot keys, stampedes and invalidation handled.
A live TV vote at a million writes a second: spread by key, buffer in Kafka, aggregate the hot counter in two stages, shed what can wait.
Files up to 50 GB up and down without a byte through the API: presigned URLs, resumable multipart, S3 events, scanning and CloudFront.
Accept in milliseconds, work in the background: leases and heartbeats, retries and dead letters, progress by SSE and webhooks, fairness across tenants.
An in-memory data store like Redis, from one event loop to Redis Cluster to a durable platform.
Search a billion documents in 200 ms: inverted indexes, analysers, Lucene segments, shards and replicas, query then fetch with BM25, fed by CDC.
A partitioned, replicated append-only log: a million messages a second, order per key, nothing acknowledged ever lost, a week of replayable history.
Workflows as code that survive any crash: event histories and replay, activities retried under timeouts, durable timers, sharded history.
A leaderless wide-column store: a token ring with virtual nodes, consistency tuned per query, an LSM write path and repair that keeps replicas converged.
A key-value store like DynamoDB, from one durable node to Paxos-replicated partitions to global tables run for thousands of tenants.
A relational database like PostgreSQL: WAL and MVCC on one server, quorum replication and failover, then a sharded fleet.
A stateful stream processor: dataflow graphs, keyed state in RocksDB, event time and watermarks, windows, barrier checkpoints, exactly-once into Kafka.
A coordination service like ZooKeeper: znodes, sessions and watches, a ZAB quorum of five with observers, and the recipes for elections and locks.