Starter · ~12.5 hr · 12 lessons
System Design Foundations: From Zero to Your First Design
Start here if system design is new to you. Learn how to turn requirements into a design, estimate load, and use the basic building blocks (DNS, load balancers, caches, databases, CDNs) with plain-English explanations and diagrams.
Enrollment is free. It unlocks every lesson in this course.
What's inside
- 1System Design: The Big PictureFree to read
- 2System Design: Requirements and ScopeEnroll to read
- 3System Design: Back-of-the-Envelope EstimationEnroll to read
- 4System Design: The Request LifecycleEnroll to read
- 5System Design: API DesignEnroll to read
- 6System Design: Load BalancingEnroll to read
- 7System Design: Scaling BasicsEnroll to read
- 8System Design: Caching BasicsEnroll to read
- 9System Design: Databases BasicsEnroll to read
- 10System Design: CDN and Object StorageEnroll to read
- 11System Design: Reliability BasicsEnroll to read
- 12System Design: A Repeatable ApproachEnroll to read
More in Backend System Design
Intermediate · ~14.5 hr · 14 lessons
System Design Building Blocks: Data, Messaging and Scale
The intermediate course: replication, sharding, consistency, advanced caching, queues and streaming, API gateways, rate limiting, search, storage engines, observability and security, with the trade-offs behind each choice.
Advanced · ~15.5 hr · 14 lessons
Advanced System Design and Case Studies
The advanced course: distributed transactions, CQRS and event sourcing, consensus, clocks and ordering, resilience, multi-region design and capacity planning, then full case studies: URL shortener, photo sharing, news feed, chat, video streaming and ride sharing.
Intermediate · ~18 hr · 11 lessons
Backend System Design Project: Build QuickCart
Design one real system from first request to ten million users: an online grocery marketplace that grows stage by stage, then a repeatable method to design any system.