Skip to content

System Design Roadmap — 12 Weeks

If you already work with large applications like Odoo or similar ERP systems, you already know more than you think:

  • Modules → service decomposition thinking
  • ORM + PostgreSQL → data modeling, indexing, query optimization
  • Multi-company / multi-db → multi-tenancy patterns
  • Job queues (cron, queue_job) → async processing concepts
  • RPC / REST APIs → API design fundamentals

Use these anchors when new concepts feel abstract.


Goal: Understand the building blocks every system design assumes you know.

  • Client–server model, DNS, HTTP/HTTPS, TCP vs UDP
  • Load balancers (L4 vs L7, round-robin, least-connections)
  • Caching — where, eviction policies (LRU, LFU), cache invalidation
  • Databases — SQL vs NoSQL, ACID vs BASE
  • CAP theorem
  • Horizontal vs vertical scaling

Resources: System Design Interview Vol 1 Ch 1–5 (Alex Xu) · ByteByteGo YouTube


Goal: Patterns that appear in 90% of system design discussions.

  • SQL at scale — read replicas, sharding, connection pooling
  • Message queues — Kafka vs RabbitMQ, async decoupling
  • Rate limiting — token bucket, leaky bucket, sliding window
  • Consistent hashing — solves rebalancing in distributed caches
  • Indexes deep dive — B-tree, composite, covering indexes
  • API design — REST vs GraphQL vs gRPC, pagination, versioning
  • Blob / object storage — S3 model, when NOT to use PostgreSQL for files
  • Search — Elasticsearch, full-text vs structured

Resources: Alex Xu Vol 1 Ch 6–13 · Designing Data-Intensive Applications Ch 1–5 (Kleppmann)


Phase 3 — Distributed Systems (Weeks 8–12)

Section titled “Phase 3 — Distributed Systems (Weeks 8–12)”

Goal: Reason about systems that span multiple machines and fail independently.

  • Replication — leader-follower, multi-leader, leaderless
  • Consensus — Raft basics (understand the problem, not the implementation)
  • Distributed transactions — 2PC, saga pattern
  • Event sourcing + CQRS
  • Microservices trade-offs — when monolith wins
  • Service mesh basics — sidecar, service discovery
  • Observability — metrics, logs, traces, OpenTelemetry

Resources: DDIA Ch 6–9 · Martin Fowler’s blog · MIT 6.824 lectures (free)


Phase 4 — Design Practice (Ongoing from Week 6)

Section titled “Phase 4 — Design Practice (Ongoing from Week 6)”
0–5 min Clarify requirements — scale, users, core features
5–15 min High-level design — boxes and arrows, happy path only
15–25 min Deep dive — pick 2 hard components, go deep
25–35 min Bottlenecks — what breaks at 10x load?
35–45 min Trade-offs — what did you give up?

Systems to Design (in order of difficulty)

Section titled “Systems to Design (in order of difficulty)”
  1. URL shortener
  2. Pastebin / note sharing
  3. Rate limiter
  4. Key-value store
  5. Unique ID generator
  6. Web crawler
  7. Notification system
  8. News feed (Twitter/Facebook)
  9. Chat system (WhatsApp)
  10. Video upload + streaming (YouTube)
  11. Multi-tenant SaaS ERP — 10,000 tenants

OperationLatency
L1 cache hit~1 ns
RAM read~100 ns
SSD read~100 µs
Network roundtrip (same DC)~500 µs
Disk seek~10 ms
Network roundtrip (cross-continent)~150 ms
UnitValue
1 million req/day~12 req/sec
1 billion req/day~12,000 req/sec
NeedTool
Fast reads, key lookupRedis / Memcached
Full-text searchElasticsearch
High-throughput event streamingKafka
Relational + ACIDPostgreSQL
Flexible schema, horizontal scaleMongoDB / DynamoDB
Async job processingRabbitMQ / Celery
  • What’s the read/write ratio?
  • What data must never be lost?
  • What can tolerate eventual consistency?
  • Where is the single point of failure?
  • What’s the bottleneck at 10x current load?

  1. System Design Interview Vol 1 — Alex Xu
  2. System Design Interview Vol 2 — Alex Xu
  3. Designing Data-Intensive Applications — Kleppmann
  4. Building Microservices — Sam Newman (optional)