← Library
Course · by Yash Tiwari

System Design: From first principles to real systems

How to design software that scales, stays up and can be changed safely: the building blocks, the trade-offs behind them, and worked case studies.

6 modules35 lessons planned0 published
01

Foundations

The language and the maths you need before drawing any boxes.

  1. 1.1What system design really isSoon
  2. 1.2Requirements and back-of-the-envelope estimationSoon
  3. 1.3Latency, throughput and availabilitySoon
  4. 1.4CAP, PACELC and consistency modelsSoon
  5. 1.5Scaling up, scaling outSoon
02

Building blocks

The parts every large system is assembled from.

  1. 2.1Load balancingSoon
  2. 2.2CachingSoon
  3. 2.3CDNs and edge deliverySoon
  4. 2.4Choosing a database: SQL, NoSQL and friendsSoon
  5. 2.5Indexing and storage enginesSoon
  6. 2.6ReplicationSoon
  7. 2.7Partitioning and shardingSoon
  8. 2.8Consistent hashingSoon
  9. 2.9Message queues and streamsSoon
  10. 2.10Rate limitingSoon
03

Distributed systems

What changes when one machine becomes many.

  1. 3.1Time, clocks and orderingSoon
  2. 3.2Consensus, in plain wordsSoon
  3. 3.3Idempotency, retries and timeoutsSoon
  4. 3.4Distributed transactions and sagasSoon
  5. 3.5Event-driven architectureSoon
  6. 3.6Designing for failureSoon
04

APIs and communication

How services talk, and how to keep that conversation stable.

  1. 4.1REST, gRPC and GraphQLSoon
  2. 4.2API design and versioningSoon
  3. 4.3Pagination, bulk operations and webhooksSoon
05

Reliability and operations

Keeping it running, and knowing when it is not.

  1. 5.1Observability: logs, metrics, tracesSoon
  2. 5.2SLOs and error budgetsSoon
  3. 5.3Capacity planningSoon
  4. 5.4Safe deployments and rollbacksSoon
  5. 5.5Security basics for system designersSoon
06

Case studies

Putting the pieces together on problems you have seen before.

  1. 6.1Design a URL shortenerSoon
  2. 6.2Design a rate limiterSoon
  3. 6.3Design a news feedSoon
  4. 6.4Design a chat systemSoon
  5. 6.5Design a notification systemSoon
  6. 6.6Design search autocompleteSoon