How to use System Design School
Source: primer, study guide, NFRs, problems list.
Use SDS for vocabulary and method. Do not binge their problem list. After the primer, run mocks by difficulty: webhook (easy), rate-limiter (medium), payment-system / robinhood (harder). Domain-shaped boards: voting, vrm, ingest.
The SDS failure mode is a cookie-cutter Kafka+Redis diagram that dies under “what if the feed is late?”
Do / re-read until you can teach it standing up
- Primer: core challenges, how to scale, interview template, design template
- NFRs and explicit trade-offs
- Idempotency, retries, timeouts, sagas
- Message queues, at-least-once / delivery guarantees, DLQ / pipeline error handling, backfill
- Caching mental model + consistency problem (you will reject cache-as-truth)
- SQL vs NoSQL; replication; partition key choice; consistent hashing at one-sentence depth
- Patterns: multi-system sync, rate limiting, two-stage processing
Skim in one sitting, do not drill
- Push vs pull in Twitter’s timeline — plus the interview problems Design Twitter and News Feed
- Social media comment system
- Kafka tutorials: introduction, log-based queues, exercise
- Redis queue tutorial
- Load-balancer labs: load balancer, Nginx codelab
- Storage-engine internals: overview
- Batch/stream internals: MapReduce, Spark, Flink & Kafka Streams
- Hybrid batch/stream architectures: Lambda, Kappa, unified processing
- Unique ID generators
- Geo / location problems: Yelp, Uber / nearby drivers
- Google Docs / operational transform
Closest SDS analogs (drill these, not news feeds)
We picked SDS problems that match a correctness / external-books / multi-tenant bar, not consumer fan-out:
| SDS problem | Difficulty | Why it transfers | Mock |
|---|---|---|---|
| Design Webhook | Easy | External push. Ack vs apply, duplicates, HMAC. | webhook |
| Design a Distributed Rate Limiter | Medium | Tenants, protect upstream APIs, fail-open vs closed, hot key. | rate-limiter |
| Design a Payment System | Hard | Provider cannot join your txn. Idempotency, ledger, in-doubt. | payment-system |
| Design Robinhood | Hard | Lossy live quotes vs exactly-once ledger. | robinhood |
Patterns underneath: multi-system sync, saga, rate limiting. Not news feeds. Method: Method. Domain mapping: Domain.
Optional extra: Ticketmaster (deadline hotspot — already covered by voting). Job scheduler is SDS hard — skip unless you have time.