This roadmap connects the site’s system designs, technical guides, and DDIA notes into 30 practice tasks. It is an editorial practice list, not a claim about any company’s current interview bank. Follow the stages or begin with your weakest area.

DDIA interview map

How to practice each question

  1. Before reading the guide, spend about 5 minutes identifying users, core operations, load assumptions, and correctness requirements.
  2. Spend about 20 minutes drawing a minimal architecture and tracing one critical path.
  3. Use about 10 minutes to introduce a hotspot, timeout, duplicate request, or failed component, then explain recovery.
  4. Read the linked guide and compare your answer with the self-review check. Record one omission to revisit. Adjust these suggested timings to the exercise.
Six-stage contents
  1. 1. Estimate and bound the system
  2. 2. Deliver updates to users
  3. 3. Make scarce resources correct
  4. 4. Store and move large data
  5. 5. Stress the design
  6. 6. Combine the concepts

1. Estimate and bound the system

01 Estimate a service from DAU

State daily requests, read/write mix, peak ratio, payload size, and retention. Separate external QPS from database work.

Self-review: Explain one uncertain assumption and how a 10× change affects the design.

Open the guide / tool →

02 Design a URL shortener

Choose an ID strategy, redirect path, and expiration policy. Explain which data must be durable.

Self-review: Handle a collision, a deleted link, and a hot link without changing the contract.

Open the guide / tool →

03 Trace DNS resolution

Follow a lookup through caches and authoritative servers. Distinguish propagation from cache expiry.

Self-review: Explain the tradeoff of a shorter TTL during a migration.

Open the guide / tool →

04 Design a CDN delivery policy

Choose cache keys, TTLs, and invalidation for public assets. Keep private responses separate.

Self-review: Show how an origin failure and a bad cached version are recovered.

Open the guide / tool →

05 Add a cache without breaking correctness

Choose a source of truth, a cache population strategy, and an acceptable staleness bound.

Self-review: Walk through a cache miss, concurrent update, and cache outage.

Open the guide / tool →

2. Deliver updates to users

06 Design a chat service

Define message IDs, ordering scope, delivery acknowledgments, and reconnect behavior.

Self-review: Handle an offline recipient and a repeated send without claiming global ordering.

Open the guide / tool →

07 Design a notification service

Route messages across channels with per-user preferences, retry limits, and expiration.

Self-review: Prevent duplicate effects and explain what a dead-letter queue operator does next.

Open the guide / tool →

08 Design a news feed

Compare fan-out on write and read. Include the distribution of follower counts in estimates.

Self-review: Explain a celebrity post and a follower change while caches are stale.

Open the guide / tool →

09 Design nearby search

Choose a geographic index and radius-query approach. Separate candidate retrieval from ranking.

Self-review: Discuss dense city hotspots and how location freshness affects results.

Open the guide / tool →

10 Design autocomplete

Choose prefix retrieval, popularity updates, and a latency budget. Explain where freshness matters.

Self-review: Handle a rapidly trending term without rebuilding every prefix synchronously.

Open the guide / tool →

3. Make scarce resources correct

11 Reserve multiple hotel nights

Define the inventory invariant and the transaction boundary for a stay across several dates.

Self-review: If the final night is unavailable, show why no earlier night remains reserved.

Open the guide / tool →

12 Handle a payment after reservation expiry

Choose a deadline policy and replay confirmation versus expiry in both orders.

Self-review: Inventory is released once; repeated callbacks do not create repeated refunds.

Open the guide / tool →

13 Design payment idempotency

Separate a business payment identity from individual attempts and provider request keys.

Self-review: Explain how to recover an unknown timeout without charging twice.

Open the guide / tool →

14 Sell tickets during a traffic spike

Define admission control, a waiting room, inventory ownership, and hold expiration.

Self-review: Show how fairness and correctness behave when an admitted client disconnects.

Open the guide / tool →

15 Design a distributed rate limiter

Choose the key, time model, algorithm, and behavior when the counter store is unavailable.

Self-review: State whether a temporary overshoot is acceptable and bound its impact.

Open the guide / tool →

4. Store and move large data

16 Design a key-value store

Choose partitioning, replication, and read/write consistency for a specific workload.

Self-review: Explain a failed replica and the behavior of reads during recovery.

Open the guide / tool →

17 Design file synchronization

Model chunks, metadata, version history, and resumable uploads. Separate content from permissions.

Self-review: Handle two edits to the same file and a partially completed upload.

Open the guide / tool →

18 Design expiring text storage

Choose identifiers, retention, read caching, and abuse limits for a paste service.

Self-review: Explain the difference between hiding an expired item and physically deleting it.

Open the guide / tool →

19 Design video delivery

Separate upload, transcoding, metadata, and playback. Estimate bandwidth with an explicit payload model.

Self-review: Show how failed transcoding retries without publishing an incomplete asset.

Open the guide / tool →

20 Design a web crawler

Define URL deduplication, crawl scheduling, per-host politeness, and incremental refresh.

Self-review: Prevent a URL trap from consuming the frontier indefinitely.

Open the guide / tool →

5. Stress the design

21 Design ride matching

Distinguish location updates, candidate search, matching, and trip state transitions.

Self-review: Handle stale driver locations and two riders competing for one driver.

Open the guide / tool →

22 Design a map application

Separate tile delivery from route calculation and changing traffic data.

Self-review: Explain which operations can use a stale cache and which cannot.

Open the guide / tool →

23 Design a leaderboard

Define rank semantics, tie handling, update rate, and whether approximate ranking is allowed.

Self-review: Discuss a hot tournament and the cost of exact global rank.

Open the guide / tool →

24 Coordinate ecommerce checkout

Separate cart intent, inventory reservation, payment, order confirmation, and fulfillment.

Self-review: For each failed step, name the durable state and compensation path.

Open the guide / tool →

25 Replay an event stream

Choose partition keys, offset handling, and consumer-side idempotency for a projection.

Self-review: Rebuild from history without duplicating external side effects.

Open the guide / tool →

6. Combine the concepts

26 Design a RAG service

Connect ingestion, chunking, retrieval, permissions, and answer evaluation.

Self-review: Explain how a deleted document stops appearing in retrieved answers.

Open the guide / tool →

27 Design a streaming AI chat service

Separate request admission, inference, token streaming, session state, and cost controls.

Self-review: Handle disconnects and retries without starting duplicate expensive jobs.

Open the guide / tool →

28 Migrate a hot shard

Identify the hot key and choose a migration or repartitioning strategy with observable progress.

Self-review: Specify read/write ownership during migration and a rollback condition.

Open the guide / tool →

29 Choose batch versus stream processing

Define freshness, event-time behavior, replay requirements, and output correctness.

Self-review: Explain late events and how a recomputation changes previously emitted results.

Open the guide / tool →

30 Evolve the design without synchronized releases

Plan a schema change across old and new producers, consumers, and stored records.

Self-review: Demonstrate backward/forward compatibility with a concrete changed field.

Open the guide / tool →

A consistent review rubric

Score four areas from 0–2: requirements and invariants, load assumptions, the critical data path, and failure/recovery. Zero means missing; one means mentioned but not traced; two means explained using a concrete request or failure. Use the score to identify gaps, not to predict interview outcomes.

Keep the date, question number, least certain assumption, one failure timeline, and one item to revisit. Prioritize questions you cannot yet explain clearly.

Check assumptions with the capacity calculator · Replay inventory and payment failures