System design
Learning paths
Topics
Roadmaps
Games
Search articles, topics...
⌘K
Library
Topics
Sharding
Splitting data across machines, and choosing the key that decides where.
Path
System design
Databases
Articles
Level
Foundation
Core
Senior
Staff
Design questions only
Patterns
Claim with an expiry
Cut the map into cells
Append now, merge later
Replicas that vote
Precompute the read
Narrow
Scaling
1
Caching
3
Data modelling
2
Replication
1
Consistency
1
Storage and indexes
2
SQL
1
NoSQL
1
Search
1
Location
1
9 pages
Sharding
System design · Core · 14 min
SQL
Consistent hashing
System design · Core · 18 min
Caching
Design a unique ID generator
System design · Core · 28 min
Data modelling
Design a key value store
System design · Senior · 34 min
Replication
Consistency
Storage and indexes
Design a proximity service
System design · Senior · 33 min
Location
Caching
Design Google Search
System design · Staff · 35 min
Search
Storage and indexes
Partitioning and sharding
Databases · Core · 11 min
DynamoDB
Databases · Core · 11 min
NoSQL
Data modelling
Hot keys and hot partitions
Articles · Senior · 14 min
Scaling
Caching