SD Theory Curriculum
SD Theory Curriculum
Structured theory foundation before tackling design problems. Track section completion here.
Related: [[synthesis/Job Switch Hub]] | [[synthesis/Coach Hub]] | [[System Design/System Design Basics]]
Progress
| # | Section | Topics | Status |
|---|---|---|---|
| 1 | Introduction to System Design | What is SD? / How to approach? / How to evaluate quality | ✅ Done (W1 — May 11–17) |
| 2 | Databases | All Things Databases / Relational DBs / Isolation Levels / Scaling / Sharding & Partitioning / Non-relational DBs / Picking the right DB | ✅ Done (2026-05-19) |
| 3 | Caching | All Things Caching / Understanding Caching / Populating & Scaling Caches / Caching at different architecture levels | ⬜ |
| 4 | Asynchronous Systems | Async Processing / Message Queues / Kafka Essentials / Real-time PubSub | ⬜ |
| 5 | Resiliency | Designing for Resiliency / Load Balancers / Circuit Breakers / Data Redundancy & Recovery / Leader Election | ⬜ |
| 6 | Essentials | Bloom Filters / Consistent Hashing / Client-server & Communication Protocols / Blob Storage & S3 / Intro to Big Data | ⬜ |
| 7 | Consumer Facing | e-Commerce Product Listing / Tinder Feed / Notifications (design + scaling) / Twitter Trends | ⬜ |
| 8 | Common Utilities | URL Shorteners / API Rate Limiter / Realtime Abuse Masker / Web Crawler | ⬜ |
| 9 | Critical Systems | GitHub Gists / Fraud Detection / Recommendation Engine | ⬜ |
| 10 | Networking & Protocols | DNS resolution / CDN (caching, invalidation) / HTTP 1.1 vs 2 vs 3 / WebSocket vs SSE vs Long Polling vs Short Polling / TCP vs UDP | ⬜ |
| 11 | Observability | Structured logging / Metrics + alerting (Prometheus/Grafana pattern) / Distributed tracing (correlation IDs, Jaeger concept) / SLI SLO SLA definitions | ⬜ |
| 12 | Security Basics | OAuth2 + JWT flow / Session vs token auth / API key management / HTTPS/TLS what it does and why / API security patterns | ⬜ |
Completed: 2/12 sections (Databases ✅ W1, Introduction ✅ W1)
Cross-link: [[System Design/API Design Principles]] covers REST pagination, idempotency, versioning, rate limiting at gateway level — read alongside Common Utilities section.
Section Notes
Databases ✅
Covers the full database foundation needed for SD interviews:
- Relational vs non-relational trade-offs + when to pick which
- Isolation levels (Read Uncommitted → Serializable) + anomalies each prevents
- Scaling strategies: read replicas, write sharding, CQRS patterns
- Sharding + partitioning: range, hash, directory-based; hotspot problem
- Non-relational: document, key-value, column-family, graph DBs + use cases
Cross-links: [[System Design/System Design Basics]] | [[SQL/Transactions]]
Completion Target
| Week | Sections | Hours | Status |
|---|---|---|---|
| W1 (May 11–17) | Introduction + Databases | ~3h | ✅ Done |
| W2 (May 18–24) | Caching + Asynchronous Systems + Resiliency + Essentials | ~9h | 0/4 done |
| W3 (May 25–31) | Consumer Facing + Common Utilities + Networking & Protocols | ~6h | ⬜ |
| W4 (Jun 1–7) | Critical Systems + Observability + Security Basics | ~5h | ⬜ |
| W5 (Jun 8–14) | Buffer — weak section review + SD problem prep warm-up | ~3h | ⬜ |
| W6 (Jun 15–21) | SD problems start (URL Shortener) — theory complete | — | ⬜ |
Pace: 4 sections in W2 (makeup for W1 having only 2). W3–W4 = 3/week. W5 = buffer. All 12 done by W4 end.