System Design Foundations

The building blocks of scalable systems — load balancing, caching, queues, partitioning, and the reliability work around them.

Intermediate1h 37m4 modules14.8k students

What you’ll learn

  • Assemble the building blocks

    Know what load balancers, caches, and queues each solve, and what they cost you.

  • Scale the data layer

    Partition and replicate data, and reason clearly about the consistency you gave up.

  • Design resilient APIs

    Handle retries, idempotency, and rate limiting so failures do not compound.

  • Estimate capacity

    Do the arithmetic that turns a hand-wavy design into a defensible one.

Tracklist

4 modules · 1h 37m

  1. 1Core Building BlocksThe three components that appear in nearly every architecture diagram, and what each one is actually for.38m 9s
    1. Lesson 1.1Load balancingFree preview4m 42s
    2. Lesson 1.2Caching layers and invalidation6m 41s
    3. Lesson 1.3Queues and asynchronous work26m 46s
  2. 2Data at ScaleWhat happens to your database when one machine is no longer enough.17m 52s
    1. Lesson 2.1Sharding and partitioning6m 2s
    2. Lesson 2.2Replication and read scaling5m 2s
    3. Lesson 2.3Consistency models and CAP6m 48s
  3. 3API Design at ScaleThe contract other systems depend on, and how it behaves when they misbehave.20m 32s
    1. Lesson 3.1REST and GraphQL trade-offs5m 15s
    2. Lesson 3.2Rate limiting7m 46s
    3. Lesson 3.3Idempotency and safe retries7m 31s
  4. 4Reliability and OperationsKnowing what your system is doing, and what it does when a dependency stops answering.20m 55s
    1. Lesson 4.1Observability: logs, metrics, traces8m 9s
    2. Lesson 4.2Timeouts, retries, and circuit breakers4m 14s
    3. Lesson 4.3Capacity estimation8m 32s