System Design

Design systems. See the trade-offs.

Follow requests, change workloads and test design decisions.

Choose your starting point

New to System Design? Start with Foundations. You can switch anytime.

Foundations

No account or installation needed. Your progress stays on this device.

Srinivas Namala, author
About the author

Srinivas Namala

Software Engineer

Srinivas focuses on backend development, databases, systems, and the technologies used to build reliable server-side applications.

View LinkedIn profile ↗

Your learning path

All lessons

95 lessons148 interactive labs208 quiz questions

Your progress is saved on this device.

Estimated time includes reading, exploring code and answering quizzes. Learn at your own pace.

Start with the Fundamentals

5 lessons · 51 min
  1. What Is System Design?1interactive labs2quiz questions12minutes estimated learning time
  2. Why Learn System Design?1interactive labs3quiz questions18minutes estimated learning time
  3. System vs Software Design1interactive labs2quiz questions7minutes estimated learning time
  4. High-Level vs Low-Level Design1interactive labs2quiz questions7minutes estimated learning time
  5. Functional and Non-Functional Requirements1interactive labs2quiz questions7minutes estimated learning time

Measure and Plan

4 lessons · 35 min
  1. Capacity Estimation1interactive labs2quiz questions8minutes estimated learning time
  2. Latency and Throughput1interactive labs2quiz questions8minutes estimated learning time
  3. Availability and Reliability1interactive labs3quiz questions8minutes estimated learning time
  4. Horizontal vs Vertical Scaling1interactive labs3quiz questions11minutes estimated learning time

Meet the Building Blocks

22 lessons · 184 min
  1. DNS and the Request Journey1interactive labs2quiz questions6minutes estimated learning time
  2. Protocols, Proxies and Live Connections1interactive labs2quiz questions6minutes estimated learning time
  3. Load Balancers9interactive labs2quiz questions26minutes estimated learning time
  4. Content Delivery Networks1interactive labs3quiz questions9minutes estimated learning time
  5. Rate Limiting1interactive labs2quiz questions8minutes estimated learning time
  6. Block, File and Object Storage1interactive labs2quiz questions6minutes estimated learning time
  7. Databases: Tables and Documents2interactive labs4quiz questions13minutes estimated learning time
  8. Database Replication and Read Guarantees1interactive labs2quiz questions7minutes estimated learning time
  9. Consistent Hashing and Data Placement1interactive labs2quiz questions6minutes estimated learning time
  10. Sharding and Partitioning1interactive labs2quiz questions8minutes estimated learning time
  11. Search Engines and Derived Indexes1interactive labs2quiz questions6minutes estimated learning time
  12. Indexing and Denormalization1interactive labs2quiz questions7minutes estimated learning time
  13. Consensus and Leader Election1interactive labs2quiz questions6minutes estimated learning time
  14. CAP and Network Partitions1interactive labs2quiz questions7minutes estimated learning time
  15. Caching1interactive labs3quiz questions10minutes estimated learning time
  16. Client-Side vs Server-Side Caching1interactive labs2quiz questions7minutes estimated learning time
  17. Cache Invalidation Strategies1interactive labs2quiz questions7minutes estimated learning time
  18. Redis and Memcached1interactive labs2quiz questions7minutes estimated learning time
  19. Message Queues1interactive labs3quiz questions10minutes estimated learning time
  20. Cron Jobs and Scheduled Tasks1interactive labs2quiz questions6minutes estimated learning time
  21. Service Discovery and Health Checks1interactive labs2quiz questions6minutes estimated learning time
  22. API Gateways2interactive labs2quiz questions10minutes estimated learning time

Explore Architectures

7 lessons · 45 min
  1. Event-Driven Architecture1interactive labs3quiz questions9minutes estimated learning time
  2. Serverless and Background Compute1interactive labs2quiz questions6minutes estimated learning time
  3. Stream Processing and Batch Jobs1interactive labs2quiz questions6minutes estimated learning time
  4. Distributed Transactions and Sagas1interactive labs2quiz questions6minutes estimated learning time
  5. Monolith vs Microservices1interactive labs1quiz questions6minutes estimated learning time
  6. Service-Oriented Architecture1interactive labs2quiz questions6minutes estimated learning time
  7. Strangler Fig Migration1interactive labs2quiz questions6minutes estimated learning time

Design Patterns

43 lessons · 281 min
  1. Choosing Design Patterns1interactive labs1quiz questions7minutes estimated learning time
  2. Factory Method2interactive labs2quiz questions7minutes estimated learning time
  3. Abstract Factory2interactive labs2quiz questions6minutes estimated learning time
  4. Builder2interactive labs2quiz questions6minutes estimated learning time
  5. Prototype2interactive labs2quiz questions6minutes estimated learning time
  6. Singleton2interactive labs2quiz questions6minutes estimated learning time
  7. Adapter2interactive labs2quiz questions6minutes estimated learning time
  8. Bridge3interactive labs3quiz questions9minutes estimated learning time
  9. Composite2interactive labs2quiz questions6minutes estimated learning time
  10. Decorator2interactive labs2quiz questions6minutes estimated learning time
  11. Facade2interactive labs2quiz questions6minutes estimated learning time
  12. Flyweight2interactive labs2quiz questions6minutes estimated learning time
  13. Proxy2interactive labs2quiz questions6minutes estimated learning time
  14. Strategy2interactive labs2quiz questions6minutes estimated learning time
  15. Observer2interactive labs2quiz questions6minutes estimated learning time
  16. Command2interactive labs2quiz questions6minutes estimated learning time
  17. Template Method2interactive labs2quiz questions6minutes estimated learning time
  18. Iterator2interactive labs2quiz questions6minutes estimated learning time
  19. State2interactive labs2quiz questions6minutes estimated learning time
  20. Chain of Responsibility2interactive labs2quiz questions6minutes estimated learning time
  21. Mediator2interactive labs2quiz questions6minutes estimated learning time
  22. Memento2interactive labs2quiz questions6minutes estimated learning time
  23. Visitor2interactive labs2quiz questions6minutes estimated learning time
  24. Interpreter2interactive labs2quiz questions6minutes estimated learning time
  25. Dependency Injection2interactive labs2quiz questions6minutes estimated learning time
  26. Repository2interactive labs2quiz questions6minutes estimated learning time
  27. Unit of Work2interactive labs2quiz questions6minutes estimated learning time
  28. Model–View–Controller2interactive labs2quiz questions6minutes estimated learning time
  29. Cache-Aside2interactive labs2quiz questions7minutes estimated learning time
  30. Write-Through and Write-Behind2interactive labs2quiz questions7minutes estimated learning time
  31. Publisher/Subscriber2interactive labs2quiz questions7minutes estimated learning time
  32. Transactional Outbox2interactive labs3quiz questions8minutes estimated learning time
  33. CQRS2interactive labs3quiz questions8minutes estimated learning time
  34. Event Sourcing2interactive labs3quiz questions8minutes estimated learning time
  35. Saga2interactive labs3quiz questions8minutes estimated learning time
  36. Circuit Breaker2interactive labs2quiz questions7minutes estimated learning time
  37. Bulkhead2interactive labs2quiz questions6minutes estimated learning time
  38. Retry with Backoff and Jitter2interactive labs2quiz questions7minutes estimated learning time
  39. Sidecar2interactive labs2quiz questions7minutes estimated learning time
  40. Backends for Frontends2interactive labs2quiz questions7minutes estimated learning time
  41. Gateway Aggregation2interactive labs2quiz questions7minutes estimated learning time
  42. Anti-Corruption Layer2interactive labs2quiz questions6minutes estimated learning time
  43. Asynchronous Request/Reply2interactive labs3quiz questions8minutes estimated learning time

Design Complete Systems

5 lessons · 39 min
  1. Growing a Service from One Server1interactive labs2quiz questions6minutes estimated learning time
  2. Design a URL Shortener1interactive labs3quiz questions9minutes estimated learning time
  3. Design a Photo-Sharing Feed1interactive labs3quiz questions8minutes estimated learning time
  4. Design Reliable Messaging1interactive labs3quiz questions8minutes estimated learning time
  5. Design a Video Platform1interactive labs3quiz questions8minutes estimated learning time

Operate and Improve Systems

6 lessons · 40 min
  1. Timeouts, Retries and Circuit Breakers1interactive labs2quiz questions6minutes estimated learning time
  2. Deployments and System Testing1interactive labs2quiz questions6minutes estimated learning time
  3. Monitoring, Logs and Traces1interactive labs2quiz questions6minutes estimated learning time
  4. Security, Authentication and Permissions1interactive labs3quiz questions8minutes estimated learning time
  5. Disaster Recovery1interactive labs3quiz questions8minutes estimated learning time
  6. Cost Optimization1interactive labs2quiz questions6minutes estimated learning time

Practice and Review

3 lessons · 17 min
  1. Approach a System Design Problem1interactive labs2quiz questions6minutes estimated learning time
  2. Common Design Mistakes1interactive labs2quiz questions6minutes estimated learning time
  3. Practice and Further Reading1interactive labs1quiz questions5minutes estimated learning time