Sign in to keep reading
“Introduction” is free with an account. Your progress and bookmarks follow you across devices.
Sign in to continueNEW: ML Mock & Coaching with a 20+ year experience coach. Save $20 on sessions for Premium.ML Mock & Coaching now available
NEW: ML Mock & Coaching with a 20+ year experience coach. Save $20 on sessions for Premium.ML Mock & Coaching now available
A practical overview of the 22 design patterns you need for system design interviews — organized by category so you know when to reach for each one.
“Introduction” is free with an account. Your progress and bookmarks follow you across devices.
Sign in to continueWhether you are a few years into your career or a senior engineer who hasn't interviewed in a while, these patterns fill the gap between knowing individual building blocks and actually designing a complete system under interview pressure.
Design patterns are the recurring solutions that show up across almost every system design question. Building blocks (databases, caches, queues) are your raw materials. Design patterns are how you wire them together to solve real problems — handling millions of writes, keeping data in sync, recovering from failures, and pushing updates to users in real time.
You do not need to memorize every detail. What matters is recognizing which pattern applies when a requirement appears in an interview, and knowing the key trade-offs well enough to discuss them confidently.
We group the 22 patterns into six categories based on the type of problem they solve. During an interview, the requirements you gather will naturally point you toward one or more of these categories.
These patterns address the most fundamental challenge: your system has more traffic than a single machine can handle.
| Scaling & Performance | |
|---|---|
| Pattern | When You Need It |
| Scaling Reads | Read-heavy workloads — user profiles, product pages, feeds viewed far more than updated |
| Scaling Writes | Write-heavy workloads — location updates, click events, sensor data arriving at massive volume |
| Distributed Caching | Reducing database load and latency with a shared, horizontally scalable cache layer |
| Rate Limiting | Protecting services from abuse, enforcing fair usage, and surviving traffic spikes |