System design
Learning paths
Topics
Roadmaps
Games
Search articles, topics...
⌘K
Library
Topics
Data modelling
Tables, keys and access patterns: shaping data for the queries you run.
Path
System design
Databases
Distributed systems
Level
Foundation
Core
Senior
Staff
Design questions only
Patterns
Two systems, two lifetimes
Claim with an expiry
Hot key
Fan out on write or on read
Append now, merge later
Safe retries
Precompute the read
Number every change
Bytes first, pointer last
Narrow
Caching
2
Replication
1
Sharding
2
Consistency
1
SQL
2
NoSQL
3
Queues and streams
3
Real-time
1
Architecture and deployment
1
Files and media
2
Analytics
1
11 pages
SQL vs NoSQL
System design · Foundation · 16 min
SQL
NoSQL
Design a URL shortener
System design · Core · 32 min
Caching
Design a unique ID generator
System design · Core · 28 min
Sharding
Design Instagram feed
System design · Core · 31 min
Caching
Queues and streams
Design WhatsApp
System design · Core · 24 min
Real-time
Queues and streams
Design Dropbox
System design · Senior · 39 min
Files and media
Consistency
Design YouTube
System design · Staff · 40 min
Files and media
Analytics
Normalization
Databases · Foundation · 7 min
SQL
MongoDB
Databases · Core · 10 min
NoSQL
Replication
DynamoDB
Databases · Core · 11 min
NoSQL
Sharding
Event sourcing, CDC and the log
Distributed systems · Senior · 11 min
Queues and streams
Architecture and deployment