System Design Tutorials¶
Worked system design examples that explain why each decision is made, not just what the final architecture looks like. Every design walks through the requirements, the alternatives considered, and the tradeoffs, so you can defend your choices in an interview and in a real design review.
How to use this repository¶
- High-Level Design: architecture, components, data flow and scaling (e.g. "Design BookMyShow").
- Low-Level Design: classes, interfaces, design patterns and code (e.g. "Design a Parking Lot").
- Concepts: each section has a
concept/folder with reusable building blocks (caching, load balancing, SOLID, ...). Designs link to these instead of re-explaining them.
Read the concepts first if a term is new, then work through the designs in the order listed below.
Progress¶
Status: planned → draft → complete.
High-level design¶
| Type | Topic | Status |
|---|---|---|
| Concept | none yet | |
| Design | none yet |
Low-level design¶
| Type | Topic | Status |
|---|---|---|
| Concept | UML basics: class diagrams | complete |
| Design pattern | Singleton, with a worked Logger design | complete |
| Design pattern | Factory (Simple, Method, Abstract), with a worked Notification Service design | complete |
| Design pattern | Strategy, with a worked cache-eviction design | complete |
| Design pattern | Observer, with a worked price-feed design | complete |
| Design | none yet |