4 modules · 15 lessons
Core Concepts
Communication, storage, capacity, and distributed systems, explained through working examples and the tradeoffs behind them.
Communication and execution
- 01
Request and Response
Read HTTP contracts, reuse connections, validate inputs, and distinguish a failed response from a failed operation.
- 02
DNS and CDN
Follow name resolution and edge caching, then test cache keys, revalidation, expiry, and private responses.
- 03
Load Balancers and API Gateways
Route traffic, check backend health, drain connections, and place authentication and traffic policies at the right boundary.
- 04
Parallelism and Concurrency
Choose async tasks, threads, or processes; coordinate shared state and bound work without losing cancellation.
Data and capacity
- 01
Storage
Choose storage by access pattern, durability, and interface, from memory and disks to databases and object stores.
- 02
Numbers to Know
Use dated hardware and AWS specifications to check CPU, memory, network, storage, and availability budgets.
- 03
Back-of-the-Envelope Calculations
Turn product activity into request rates, concurrent work, throughput, and storage growth with explicit assumptions.
- 04
Indexes and MVCC
Inspect query access paths, order composite indexes, and test snapshot visibility and conflicting updates.
- 05
Caching
Balance latency and freshness with cache strategies, eviction, bounded single-flight, and expiry jitter.
Distributed work
- 01
Queues and Retries
Handle acknowledgements, duplicate work, outbox delivery, retry budgets, and poison messages.
- 02
Distributed Systems and CAP
Reason about partial failure, linearizability, and availability during a network partition.
- 03
Replication
Follow writes across replicas and examine lag, acknowledgement, failover, fencing, and recovery.
- 04
Sharding
Choose partition keys, expose skew, route requests, and move data while preserving query and write boundaries.