← 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.

Local 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

Unit 1One Server: Where Every System Starts

Unit 2Scaling Out: Load Balancers and Stateless Services

Unit 3Caching: Answering Without Asking the Database

Unit 4Database Scaling I: Indexes and Replication

Unit 5Database Scaling II: Sharding and the SQL vs NoSQL Question

Unit 6Asynchronous Work: Queues, Workers, and Retries

Unit 7Consistency and the CAP Intuition

Unit 8Microservices vs Monolith, and Observability

Unit 9Estimation and the Interview Method

Unit 10Capstone Designs: Three Full Interviews

Reviews

0 ratings

5
0
4
0
3
0
2
0
1
0
  • No reviews yet.

Discussion

  • No comments yet. Sign in to comment.