Learn system design from
first principles.
Track your progress.
Sign inor start with What a system is
Full curriculum
OrientationSD3
Orientation
Module016
One request, end to end
Module027
Where data lives
Module039
Thinking like a designer
03.01
Requirements clarification
03.02
Non-functional requirements
03.03
Availability, durability, consistency, cost
03.04
Logical system design
03.05
System design tradeoffs
03.06
Back-of-the-envelope capacity planning
03.07
Cost-aware architecture
03.08
When not to add infrastructure
03.09
a URL shortener, one machine
Design walkthroughModule049
Scaling the stateless tier
Module0510
Staying correct under failure
05.01
Retries, timeouts, and idempotency
05.02
Circuit breakers and timeouts
05.03
Backpressure
05.04
Load shedding
05.05
Tail latency
05.06
Batching
05.07
Rate limiter placement and keys
05.08
Sliding window rate limiter
05.09
Stripe's idempotency keys
Company case05.10
rate limiting and abuse prevention
Design walkthroughModule068
Caching and fast reads
Module0712
Relational databases, properly
Module0810
NoSQL and partitioning
08.01
NoSQL decision boundaries
08.02
Document vs key-value stores
08.03
Columnar vs wide-column stores
08.04
Graph database decision boundary
08.05
Sharding and partitioning
08.06
Consistent hashing
08.07
Consistent-hashing load balancing
08.08
Hot partitions
08.09
Hot and cold storage, archival
08.10
how Discord stores trillions of messages
Company caseModule095
IDs, clocks, and ordering
Module106
Replication and consistency
Module118
Coordination
Module1212
Storage engines from scratch
12.01
Storage engine design constraints
12.02
Storage engine tradeoffs
12.03
A file-backed dictionary
12.04
Custom binary file format
12.05
Immutable versioned data files
12.06
Log-structured storage
12.07
Bitcask storage engine
12.08
LSM-tree storage engine
12.09
Memtable, WAL, and SSTable
12.10
LSM read path: Bloom filters and sparse index
12.11
Compaction and amplification
12.12
End-to-end checksums
Module139
Object storage
13.01
Object storage vs database
13.02
S3 object storage architecture
13.03
Byte-range indexed object storage
13.04
Range partitioning vs consistent hashing for storage
13.05
Partition manager and map table
13.06
Metadata database for object storage
13.07
Append-only stream layer
13.08
Durability and replication
13.09
an object store (S3)
Design walkthroughModule148
Queues and events
Module156
Workflows, schedulers, and contention
Module169
Search engine internals
16.01
Information retrieval system design
16.02
Inverted index and posting lists
16.03
Boolean and tiered search
16.04
TF-IDF relevance scoring
16.05
BM25 production ranking
16.06
Stop words and champion lists
16.07
Query understanding pipeline
16.08
Search feedback and relevance signals
16.09
Search evaluation metrics
Module179
Search at scale and search features
17.01
Search index synchronization
17.02
Search index sharding
17.03
Crawler and indexing pipeline
17.04
Vector search and hybrid retrieval
17.05
autocomplete
Design walkthrough17.06
did-you-mean and spell correction
Design walkthrough17.07
related searches
Design walkthrough17.08
recent searches
Design walkthrough17.09
a search service
Design walkthroughModule188
Probabilistic data structures
Module197
Counting and analytics pipelines
Module202
Recommendations
Module214
Realtime delivery
Module228
Social products
22.01
Social network database modeling
22.02
Social graph: follows and FlockDB
22.03
Feed generation: push, pull, hybrid
22.04
Hashtag extraction and tag store
22.05
Reaction modeling
22.06
a newly-unread indicator
Design walkthrough22.07
photo tagging coordinates
Design walkthrough22.08
a social feed
Design walkthroughModule238
Geo and matching
Module249
Media, files, and CDN
24.01
Direct-to-object-storage upload
24.02
Image CDN and resizing
24.03
An avatar service
24.04
Video upload: signed URLs and multipart
24.05
Video transcoding pipeline
24.06
Adaptive bitrate and the CDN decider
24.07
Signed URLs, DRM, and video security
24.08
Live streaming, WebRTC, and latency
24.09
a video platform
Design walkthroughModule254
File sync
Module264
Observability and incidents
Module274
Changing a live system
Module286
Data protection and tenancy
Module295
The system design interview
Module302
Capstone
Curated lessons show the depth of the course. Pro unlocks the protected notes, designs, and runnable builds.Read a free lesson