System design How to design a system that serves millions: estimating with numbers, scaling and load balancing, caching, replication and sharding, then microservices and queues.
Lessons 0 Overview How to design a system that serves millions: estimating with numbers, scaling and load balancing, caching, replication and sharding, then microservices and queues. 1 Scaling and load balancing How to estimate load with numbers, vertical versus horizontal scaling, why servers must be stateless, and load-balancing algorithms and health checks. 2 Caching, replication and sharding When the database becomes the bottleneck: cache layers and invalidation policies, read replicas and replication lag, and sharding with consistent hashing. 3 Microservices and queues When to split a system into services and when a modular monolith is enough, synchronous versus asynchronous communication, message queues and retries, and safe repeated processing (idempotency). 4 Wrap-up and resources The takeaways and glossary of this track.