← All courses
CS 490 · 4 credits
System Design & Distributed Systems
Grow one small app into a planet-scale system, one bottleneck at a time. Starting from a single server running an app and a database, you will add load balancers, caches, replicas, shards, and queues, learning why each piece exists and what it costs. The course ends with the back-of-envelope method and three full worked interview designs: a URL shortener, a chat app, and a news feed.
Your progress0/29 lessons · 0%
What you'll learn
- ✓Explain how a single-server app works and predict what breaks first as traffic grows
- ✓Choose between vertical and horizontal scaling, and design stateless services behind a load balancer
- ✓Place caches at the right layer and reason about invalidation, TTLs, and hit rates
- ✓Scale a database with indexes, replication, read replicas, and sharding, and weigh SQL against NoSQL honestly
- ✓Use queues, retries, and idempotency keys to make background work reliable
- ✓Reason about consistency tradeoffs using the CAP intuition and quorum reads and writes
- ✓Run the back-of-envelope estimation method and a repeatable framework in a system design interview
- ✓Design a URL shortener, a chat app, and a news feed end to end