System design
Learning paths
Topics
Roadmaps
Games
Search articles, topics...
⌘K
Library
Topics
Queues and streams
Queues, pub/sub and logs, and what each delivery guarantee means.
Path
System design
Distributed systems
Low level design
Articles
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
One owner per key
The answer that never came
Narrow
Scaling
1
Reliability
5
Caching
1
Data modelling
3
Consensus and coordination
1
Real-time
3
API design
1
Architecture and deployment
1
Search
1
Payments
1
Analytics
1
Design patterns
2
TypeScript
1
15 pages
Message queues
System design · Core · 15 min
Reliability
Design Instagram feed
System design · Core · 31 min
Caching
Data modelling
Design WhatsApp
System design · Core · 24 min
Real-time
Data modelling
Design a notification service
System design · Core · 32 min
Real-time
Reliability
Design a web crawler
System design · Senior · 29 min
Search
Scaling
Design a distributed job scheduler
System design · Senior · 30 min
Reliability
Consensus and coordination
Design an ad click aggregator
System design · Staff · 35 min
Analytics
Exactly-once in practice
Distributed systems · Senior · 12 min
Reliability
Payments
Event sourcing, CDC and the log
Distributed systems · Senior · 11 min
Data modelling
Architecture and deployment
Observer
Low level design · Core · 9 min
Design patterns
TypeScript
At most, at least, exactly once
Articles · Core · 7 min
Reliability
Queue vs pub/sub vs stream
Articles · Core · 9 min
Push vs pull
Articles · Core · 8 min
Real-time
Observer vs pub/sub
Articles · Core · 9 min
Design patterns
Backward vs forward compatibility
Articles · Senior · 12 min
API design