System Design Prepgo pro
Study guides

System design, one building block at a time

The questions on this site are drills; these guides are the theory behind them. Each one covers a topic the way you would explain it in an interview: what it is for, the realistic options, the numbers, and the sentence to say. Read them in order the first time, then use them as a reference while practising.

  1. 01How to run a system design interviewA minute-by-minute framework for the 45-minute system design interview: scoping, numbers, high-level design, deep dives, and what senior and staff interviewers are actually grading.
  2. 02Back-of-envelope estimationThe numbers to memorise for system design interviews (latency, throughput, storage, powers of two) and a repeatable method to estimate QPS, storage and bandwidth in under five minutes.
  3. 03Scalability fundamentalsVertical vs horizontal scaling, stateless services, the standard web architecture, and how to reason about which tier breaks first.
  4. 04Load balancingLayer 4 vs layer 7 load balancers, routing algorithms, health checks, sticky sessions, global load balancing and how to talk about them in a system design interview.
  5. 05CachingWhere to cache (browser, CDN, application, database), cache-aside vs write-through vs write-back, eviction policies, invalidation, hot keys, thundering herds and cache stampedes.
  6. 06CDNs and edge computingHow a content delivery network works, push vs pull, cache keys and TTLs, what to put at the edge, edge functions and KV, and the pitfalls of caching dynamic content.
  7. 07Choosing a databaseRelational vs document vs wide-column vs key-value vs graph vs search vs time-series; how to pick storage from the access pattern, design keys and indexes, and answer "why not Postgres?".
  8. 08Sharding and partitioningHorizontal partitioning strategies (range, hash, directory), consistent hashing, choosing a shard key, hot shards, cross-shard queries, and resharding without downtime.
  9. 09Replication and consistencyLeader-follower, multi-leader and leaderless replication; synchronous vs asynchronous; quorums; CAP and PACELC; consistency models from eventual to linearizable; read-your-writes and failover.
  10. 10Message queues and event streamsWhen to go asynchronous, queues vs logs (SQS, RabbitMQ vs Kafka), delivery guarantees, ordering, consumer groups, dead-letter queues, backpressure, and the outbox pattern.
  11. 11API designREST vs gRPC vs GraphQL, resource modelling, pagination (offset vs cursor), idempotency keys, versioning, error handling, authentication, and rate limiting in system design interviews.
  12. 12Real-time systems: WebSockets, SSE and pushLong polling vs Server-Sent Events vs WebSockets, connection servers and registries, pub/sub fan-out, presence, reconnection and resync, and scaling to millions of connections.
  13. 13Rate limiting and resilienceToken bucket, leaky bucket, fixed and sliding windows, distributed rate limiters, plus the resilience toolkit: timeouts, retries with backoff and jitter, circuit breakers, bulkheads, load shedding and graceful degradation.
  14. 14Distributed transactions and idempotencyWhy cross-service transactions are hard, two-phase commit vs sagas, the outbox pattern, idempotency keys, exactly-once semantics, and how to keep money and inventory correct.
  15. 15Unique ids, ordering and timeAuto-increment vs UUID vs Snowflake vs ULID/UUIDv7, time-ordered ids, id generation at scale, clock skew, logical clocks, and why "ordered by time" is harder than it sounds.
  16. 16Observability, operations and rolloutsMetrics, logs and traces; SLIs, SLOs and error budgets; alerting; safe deploys (canary, blue-green, feature flags); migrations without downtime; capacity planning; and how to answer "how would you know it is working".