The questions
- Design a metrics monitoring system like DatadogHigh-volume time-series ingestion: bounded cardinality, correct aggregation across retries and rollups, and alerts that distinguish unhealthy services from missing data.Hard
- Design a distributed message log like KafkaReplicated append-only logs: partition ordering, safe failover, independent consumer progress, and bounded retention under slow readers.Hard
- Design a top K trending systemContinuously changing rankings: sliding-window expiration, exact distributed top K, viral articles, and share-ID deduplication across delivery and replay.Hard
- Design a distributed message queue like RabbitMQDurable work distribution: replicated queue state, visibility leases, duplicate delivery, poison messages, and hot-queue partitioning.Hard
- Design Dropbox or Google DriveLarge file transfers with small metadata transactions: resumable uploads, offline conflicts, reliable change feeds, and shared subtrees whose permissions change as files move.Hard
- Design a distributed job schedulerDurable timed execution: recurring occurrences, reliable dispatch, worker leases, retries, and duplicate side effects.Hard
- Design a hotel booking systemDate-range inventory: atomic multi-night reservations, expiring holds, stale search results, and payment races.Hard
- Design Facebook likes at scaleHot-post counting: correct like/unlike state, replay-safe aggregation, burst capacity, and live updates to millions of viewers.Hard
- Design a weather appLocation-based weather reads over changing external data: geographic reuse, late observations, forecast versions, and honest freshness during outages.Medium
- Design Wikipedia or NotionVersioned documents: concurrent saves, durable history, global caching, and safe page-tree changes.Hard
- Design a distributed tracing systemWrite-heavy observability pipeline: context propagation, coherent sampling, partial traces, and indexed search without slowing application traffic.Hard
- Design a real-time stock price feedGlobal latest-value streaming: source ordering, hot-symbol fanout, conflation, and reconnecting through lagging regions without rolling prices backward.Hard
- Design Google PhotosLarge private media objects with small searchable metadata: reliable uploads, asynchronous image processing, library indexing, and revocable album sharing.Hard
- Design an ads serving systemFast ad selection over changing campaign data, with strict budget enforcement despite concurrent serving and delayed impression events.Hard
A good order to practice them
Four questions that together cover most of what the Amazon list tests.
- 1Design a distributed message queue like RabbitMQWho owns a message, what happens on a retry storm, and how dead letters are kept without loss.
- 2Design a top K trending systemRanking over a stream when scores change, and one viral item overloading a single key.
- 3Design a hotel booking systemHolding inventory across a date range, and what happens when payment finishes after the hold expires.
- 4Design Google PhotosReliable uploads across retries and devices, plus processing failures and deletion.
What these questions test
The concepts that come up across the Amazon questions, by how many questions need them.
Where interviewers push
One hard part from each of the other questions: where a strong answer separates from an average one.
- Design a distributed message log like Kafka: Partition ordering versus scaling a hot key
- Partitions supply both order and parallelism. Adding brokers or consumers cannot split a single ordered stream, and changing partition routing can break the ordering clients depend on.
- Design a distributed job scheduler: The database-to-queue handoff
- Creating a durable run and publishing a queue message are separate writes. Either ordering leaves a crash window unless the design makes the handoff recoverable.
- Design Facebook likes at scale: Burst aggregation with exact eventual totals
- The hot post needs both sustained processing capacity and spare capacity after failures. One batched partition may be enough, while striping adds coordination and recovery work. Either approach must avoid permanent drift from retries, replay, and partial recovery.
- Design Wikipedia or Notion: Fast global reads without leaking private revisions
- Immutable content is easy to cache, but the current revision and access rights change. A globally cached page must satisfy both bounded staleness and permission revocation, including for historical versions.
- Design a distributed tracing system: Durable ingestion without harming the application
- The application must keep serving when tracing is unhealthy, yet acknowledged telemetry must survive an entire zone failing. The durability guarantee must hold both while data is in the log and after it moves into the span store.
- Design a real-time stock price feed: Hot-symbol fanout and bounded delivery
- The latest-price state is tiny, but copying changes to 100 million subscriptions dominates the system. A single popular stock can overload a router, and slow screens can turn a healthy stream into an ever-growing queue.
Questions people ask
What system design questions does Amazon ask?
Candidates have reported questions like a metrics monitoring system like Datadog, a distributed message log like Kafka, a top K trending system, a distributed message queue like RabbitMQ, and Dropbox or Google Drive. Questions change and vary by team, so treat this as a sample of what comes up, not a list to memorize.
What level are these Amazon questions for?
Of the 14 questions here, 13 are hard. Counting each level a question suits: 1 at mid-level, 14 at senior, 14 at staff+. The same question is asked at several levels; what changes is how deep you are expected to go and how much you drive.
What should I study for a Amazon system design interview?
The concepts that come up most across these questions are kafka vs rabbitmq, hot keys and hot partitions, message queues, and idempotency and idempotency keys. Learn how each one works and its trade-offs, then practice a few of the questions end to end, out loud, in 45 minutes.