Design scalable systems from first principles — load balancing, caching, databases, distributed systems patterns and real-world case studies.
What Is System Design
Why large systems are designed around tradeoffs rather than correct answers, and how to approach a design interview.
Scaling and Load Balancing
Move from one server to many, distribute traffic between them, and keep the system stateless enough that it works.
Fundamentals Quiz
6 questions
Caching
Keep hot data close to the reader, and handle the two hard parts — invalidation and eviction.
Databases — SQL vs NoSQL
Choose a data store based on access patterns and consistency needs rather than on which one is fashionable.
Message Queues & Async Processing
Stop making users wait for slow work by handing it to a queue and doing it in the background.
API Design & Communication
How the pieces of a system talk to each other, and how to pick between REST, GraphQL, gRPC and WebSockets.
CDNs, Blob Storage & Search
Serve files from near the user, store them somewhere sensible, and make text searchable.
Building Blocks Quiz
17 questions
Consistent Hashing
The trick that lets you add or remove a server without reshuffling almost all of your data — and why it's the answer behind sharding, load balancers and distributed caches alike.
Replication, Quorums and Consensus
How multiple copies of the same data stay (mostly) in agreement, what a quorum actually buys you, and how a cluster picks a leader without a coin flip.
Reliability Patterns — Timeouts, Retries, Circuit Breakers
Why a slow service is more dangerous than a dead one, and the handful of patterns that stop one failing component from taking down everything connected to it.
Microservices Communication and Observability
Once a system is many services instead of one, you gain independent deployability and lose the ability to see what's happening — here's how you get visibility back.
Distributed Patterns Quiz
8 questions
Design a URL Shortener
A complete worked design, from requirements and estimates through to encoding, storage and caching.
Design a Rate Limiter
Four algorithms, the distributed problem nobody mentions, and how to pick one in an interview.
Design a News Feed
Fan-out on write vs read, the celebrity problem, and why the real answer is a hybrid.
Design a Chat System
A complete worked design for something like WhatsApp — connection management at scale, message ordering, delivery guarantees and group chat fan-out.
Design a Distributed Key-Value Store
A complete worked design for something like DynamoDB — where consistent hashing, quorums and replication from earlier in this course stop being theory and become the entire system.
Design a Notification System
A worked design for sending push, SMS and email notifications at scale, covering queues, retries, duplicates and user preferences.
Design a Search Autocomplete
A worked design for typeahead suggestions like Google search, covering tries, top suggestions, caching and how suggestions stay fresh.
Design a Web Crawler
A worked design for a search engine crawler, covering the URL frontier, politeness, duplicate detection and spreading the work across machines.
Design a Video Streaming Platform
A worked design for something like YouTube or Netflix, covering uploads, transcoding, adaptive streaming and CDN delivery.
Design a File Storage and Sync Service
A worked design for something like Dropbox or Google Drive, covering chunking, deduplication, syncing across devices and conflicts.
Design a Ride-Sharing Service
A worked design for something like Uber or Ola, covering live driver locations, finding nearby drivers and matching riders safely.
Design a Ticket Booking System
A worked design for something like BookMyShow or Ticketmaster, covering double-booking prevention, seat locking and flash-sale traffic.
Case Studies Quiz
31 questions