Skip to content

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

Run the docs site locally

pip install -r requirements.txt
mkdocs serve           # live preview at http://127.0.0.1:8000
mkdocs build --strict  # fails on broken links and nav errors