- System design is learned in layers: one request on one server → scale that server → distribute data → asynchronous processing → consistency and failure → full designs. Skipping layers is why beginners feel lost.
- Prerequisites: HTTP and DNS, basic SQL and indexes, processes and threads, and what latency and throughput mean.
- The 8-week plan below gives each week a concrete output (a diagram, a write-up, a timed mock), not just reading.
- Answer every design with one framework: requirements → estimates → API → data model → architecture → deep dives → trade-offs.
- Practice out loud, timed, then compare with a reference and log your gaps. 15 to 20 deeply practiced problems beat 60 skimmed solutions.
Most beginners start system design by watching someone design Twitter in 45 minutes, nod along, and then freeze when asked to design anything themselves. The problem is not intelligence; it is order. Full designs are compositions of perhaps 20 building blocks, and if you have not internalized the blocks, the composition looks like magic. This roadmap fixes the order, gives you an 8-week plan with outputs you can check, and explains a practice method that turns reading into the ability to design out loud under time pressure.
What You Are Actually Learning
System design is the skill of turning vague requirements ("build something like Swiggy") into an architecture that meets functional needs and non-functional constraints: scale, latency, availability, consistency, cost. In interviews it shows up as two related rounds: high-level design (services, databases, caches, queues) and low-level design (classes and code for one component). The difference is explained in HLD vs LLD; this roadmap focuses on HLD, with LLD notes where they fit.
Three things are being tested, and your learning should build all three:
- Knowledge of building blocks and what each is good and bad at.
- Judgement: choosing between options for a given requirement and naming the trade-off.
- Communication: structuring a 45-minute conversation, drawing clearly, and driving it.
Prerequisites: What to Know Before Starting
You do not need years of experience, but you do need these fundamentals. If any feel shaky, spend a week here first.
| Area | Know at least | Self-test question |
|---|---|---|
| Networking | DNS resolution, TCP vs UDP, HTTP methods and status codes, HTTPS/TLS at a high level | What happens when you type a URL and press Enter? |
| Databases | SQL basics, primary keys, indexes, transactions, joins | Why does an index speed up a WHERE clause, and what does it cost on writes? |
| Operating systems | Processes vs threads, memory vs disk, concurrency basics | Why is reading from RAM so much faster than from disk? |
| Programming | Built a small web app or API that talks to a database | Can you describe your project's request path end to end? |
| Performance vocabulary | Latency vs throughput, percentiles (p50, p99) | Why do we care about p99 and not just average latency? |
For the database side, SQL interview questions and Database Indexing Explained cover what you need. For OS basics, OS interview questions is a good refresher.
The Order of Topics (and Why This Order)
Each layer answers a problem created by the previous one. Learn them in this sequence and every new concept arrives with a reason.
- One request, one server. Client → DNS → web/app server → database → response. Stateless vs stateful servers. REST API design basics. Problem created: one server cannot handle the load and is a single point of failure.
- Scaling the stateless tier. Vertical vs horizontal scaling, load balancers (L4 vs L7, round robin, least connections), health checks, session storage outside the server. Problem: the database is now the bottleneck.
- Caching. Cache-aside, write-through, write-back; TTLs and invalidation; eviction (LRU); CDN for static content; Redis as the standard tool. Problem: caches help reads, but data volume and writes still outgrow one database.
- Scaling the data tier. Indexing, read replicas and replication lag, partitioning/sharding and shard keys, consistent hashing, SQL vs NoSQL choice. Problem: data on many machines raises consistency questions.
- Consistency and distributed-systems basics. CAP and PACELC, strong vs eventual consistency, quorum reads/writes, leader election at a conceptual level, unique ID generation. Problem: some work is too slow or bursty to do inside a request.
- Asynchronous processing. Message queues and logs (Kafka, RabbitMQ, SQS), pub/sub, at-least-once delivery, idempotent consumers, the outbox pattern, batch vs stream processing. Problem: more moving parts mean more failure modes.
- Reliability and operations. Timeouts, retries with backoff, circuit breakers, rate limiting, observability (metrics, logs, traces), SLOs. Now you have the full toolbox.
- Specialized building blocks. Search (inverted index), blob storage plus CDN for media, geospatial indexing, real-time connections (WebSockets), authentication (OAuth/JWT).
- Complete designs. Compose the blocks into classic problems, from easy to hard.
The 8-Week System Design Plan
Assumes 8 to 10 hours per week alongside a job or college. Each week has a required output; if you cannot produce it, repeat the week rather than moving on.
| Week | Topics | Read / study | Output to produce |
|---|---|---|---|
| 1 | Request lifecycle, HTTP, REST, stateless servers, load balancing | REST API fundamentals, load balancer algorithms | A diagram of your own project's request path, with where it would break at 100× traffic |
| 2 | Caching patterns, Redis, CDNs, back-of-the-envelope estimation | Redis Deep Dive, Estimation guide | Capacity estimates for 3 apps on your phone, each in under 5 minutes |
| 3 | Indexing, replication, sharding, consistent hashing, choosing a database | Sharding Explained, Choosing a Database | A one-page note: "when I would pick PostgreSQL vs Cassandra vs MongoDB", with one example each |
| 4 | CAP/PACELC, consistency models, unique IDs; first two designs | CAP Theorem, Unique ID Generator | Written designs: URL shortener and Pastebin (timed 45 min each) |
| 5 | Queues and streams, idempotency, outbox; notification and rate limiter designs | Kafka vs RabbitMQ vs SQS, Rate Limiter | Two timed designs; one recorded on video and self-reviewed |
| 6 | Reliability patterns, observability; feed and chat designs | Resilience Patterns, News Feed | For each design, a "what if X fails?" section covering 3 components |
| 7 | Search, media and geo: video streaming, ride-hailing or food delivery | Search internals, Geospatial indexing | Two timed designs plus one mock interview with a peer |
| 8 | Strong consistency problems: ticket booking, payments; review gaps | BookMyShow, Payment System | Two mocks with feedback; a personal gap list turned into a revision plan |
A typical week's schedule
- Weekdays (1 hour/day): study the week's concepts; write a short note in your own words per concept, including one real-world example and one trade-off.
- Saturday (3 hours): one or two timed designs on paper or a whiteboard tool, out loud.
- Sunday (2 hours): compare against a reference solution, list what you missed, update your gap log, and revise last week's notes.
Adjusting the plan to your background
| Your situation | Adjustment |
|---|---|
| Final-year student or fresher | Run weeks 1 to 4 at full depth, then switch half your design time to LLD and machine coding practice, which is more common in fresher loops. Use your college project as the case study in week 1. |
| 1 to 3 years in a service company | You have seen production code but maybe not scale. Map every concept to your current project: where would a cache, a queue or a replica help? Those mappings become strong interview stories. |
| 3+ years, switching to a product company | Compress weeks 1 to 3 into one week of revision and spend the saved time on deep dives: consistency, hot partitions, failure handling and cost. Expect follow-ups that go two or three levels deep. |
| Only 3 to 4 weeks before interviews | Do the building blocks in week 1, then two timed designs per weekend plus one mock per week. Prioritize the starter and core rows of the problem ladder. |
What you can safely skip as a beginner
Beginners lose weeks on topics that rarely decide a junior or mid-level interview. Know they exist, but do not go deep yet:
- Consensus algorithm internals (Paxos, Raft proofs). Knowing that systems like etcd and ZooKeeper use consensus for leader election and configuration is enough at first.
- Vendor-specific configuration: AWS instance types, Kubernetes YAML fields, Kafka broker tuning.
- Exotic data stores: graph databases, time-series engines and vector databases, until a problem specifically needs them.
- Exact latency figures to three decimal places. Orders of magnitude are what matter.
- CRDTs and operational transformation, unless you are targeting collaborative-editing products.
Come back to these after you can comfortably handle the core problems; they become differentiators at senior levels, not prerequisites.
The Answer Framework to Use Every Time
Using the same structure for every practice problem builds the habit you need under interview pressure. Approximate time split for a 45-minute round:
| Phase | Minutes | What you produce |
|---|---|---|
| 1. Requirements | 5 | 3–5 functional requirements, explicit non-functional requirements (scale, latency, consistency), out of scope list |
| 2. Estimates | 3–5 | QPS (read/write), storage, bandwidth: only the numbers that drive decisions |
| 3. API | 3–5 | Core endpoints with request/response shape |
| 4. Data model | 5 | Entities, keys, which database and why |
| 5. High-level architecture | 8–10 | Diagram with the main read and write paths walked through |
| 6. Deep dives | 10–15 | The 1–2 hardest parts in depth (often chosen by the interviewer) |
| 7. Trade-offs and wrap-up | 3–5 | Bottlenecks, failure handling, what you would do with more time |
Your First Design, End to End: A URL Shortener
Here is the framework applied to the classic first problem, compressed. Do it yourself first, then compare.
Requirements
- Functional: create a short URL for a long URL; redirect short to long; optional custom alias and expiry.
- Non-functional: redirects fast (under ~50 ms server-side), highly available, short codes not guessable in sequence.
Estimates
100M new URLs/day ≈ 1,200 writes/s; 10:1 reads ≈ 12K redirects/s. Five years ≈ 180B URLs; 7-character base62 codes give 627 ≈ 3.5 trillion combinations. At ~500 bytes each, ~90 TB, so storage must be partitioned.
API
POST /api/v1/urls { "longUrl": "...", "alias": null, "expiresAt": null }
-> 201 { "shortCode": "aZ3kP9q", "shortUrl": "https://sho.rt/aZ3kP9q" }
GET /{shortCode} -> 301/302 Location: longUrl
Data model
urls(short_code PK, long_url, user_id, created_at, expires_at). Access is a pure key lookup, so a key-value or wide-column store partitioned by short_code works well; a sharded relational database is also fine.
Architecture
Deep dives
- Generating codes: hash plus collision check, vs a distributed counter or Snowflake-style ID encoded in base62 (no collisions, but sequential IDs are guessable unless shuffled).
- 301 vs 302: 301 is cached by browsers (less load, but you lose click analytics); 302 keeps every click visible.
- Hot links: cache with LRU; a viral link is served from Redis or even the CDN edge.
That is a complete beginner-level answer. The fuller version is in Design Pastebin, which shares most of the structure.
How to Practice So It Sticks
- Attempt before reading. Give yourself 45 minutes on a new problem with only a blank page. Struggling first makes the reference solution memorable.
- Talk out loud. Interviews are spoken. Narrate even when alone; record yourself occasionally. You will notice long silences and hand-waving.
- Compare against a reference, then log gaps. Keep a gap log with three columns: what I missed, the concept behind it, and where it applies again. "Did not consider hot keys → partitioning → also applies to leaderboards, flash sales."
- Re-do the same problem a week later in 30 minutes. Speed on the second attempt shows the knowledge is yours.
- Do mocks with humans. Peers, seniors, or structured mock interviews. Interviewers interrupt, push back and change requirements; solo practice cannot simulate that. See Mock Interview Strategy.
- Connect to real systems. For each design, read one real engineering blog post about a similar system and note one thing they did that you did not.
Problem ladder, easy to hard
| Level | Problems | Core skill it trains |
|---|---|---|
| Starter | URL shortener, Pastebin, rate limiter, unique ID generator | Key-value access, caching, estimation |
| Core | News feed, chat (WhatsApp), notification system, web crawler, autocomplete | Fan-out, real-time connections, queues, tries |
| Applied | Food delivery, ride-hailing, video streaming, proximity search | Geo indexing, media pipelines, matching |
| Hard consistency | Ticket booking, payment system, digital wallet, stock exchange | Transactions, idempotency, contention, ordering |
A full list with Indian-context variations is in System Design Interview Questions India.
Resources Worth Your Time
Too many resources is a bigger beginner problem than too few. Pick one primary source per category.
| Resource | Type | Best used for |
|---|---|---|
| System Design Interview Vol. 1 and 2, Alex Xu (and Sahn Lam for Vol. 2) | Books | Interview-shaped walkthroughs of classic problems; a good first structured source |
| Designing Data-Intensive Applications, Martin Kleppmann | Book | Deep understanding of replication, partitioning, transactions, consistency. Read chapters 5–9 alongside weeks 3–6 |
| The System Design Primer (GitHub, donnemartin) | Free repository | Concise building-block summaries and links |
| Google's Site Reliability Engineering book (free online at sre.google) | Book | Reliability, SLOs, cascading failures, load balancing chapters |
| Engineering blogs: Netflix, Uber, Discord, Cloudflare, Meta, and Indian ones such as Flipkart, Swiggy, Razorpay, Zerodha | Articles | How real systems made trade-offs; great interview talking points |
| Official docs: Redis, Kafka, PostgreSQL, Kubernetes | Documentation | Accurate details when a blog post's claims seem suspicious |
Common Beginner Mistakes
- Starting with full designs before the building blocks. Twitter's design will not make sense if you do not know why fan-out on write exists.
- Memorizing architectures instead of the reasons behind each component. Interviewers change one requirement and memorized answers collapse.
- Buzzword stacking: Kafka, Kubernetes, microservices, Cassandra and GraphQL in a design that serves 50 requests per second.
- Skipping requirements and designing for a problem the interviewer did not ask.
- No numbers: designs that would look identical at 1,000 users and 100 million users.
- Ignoring failure: never asking "what if this is slow or down?"
- Breadth without depth: 15 boxes, none explained deeply enough to survive a follow-up.
- Treating it as a monologue: not checking in with the interviewer, not adapting when they steer.
Readiness Checklist: Are You Interview-Ready?
You are ready for junior-to-mid level system design interviews when you can honestly tick most of these:
- I can explain, without notes, what a load balancer, cache, CDN, message queue, replica and shard each do, and one downside of each.
- I can estimate QPS and storage for a described product in under 5 minutes.
- I can justify a database choice using access patterns and consistency needs.
- I have completed at least 12 timed designs out loud, covering each row of the problem ladder.
- For any design I do, I can answer "what happens when X fails?" for its main components.
- I have done at least 3 mock interviews with another person and acted on the feedback.
- I can explain one real-world system from an engineering blog and the trade-off it made.
From here, the company-specific preparation in System Design Interview Preparation India 2026 picks up where this roadmap ends.
Frequently Asked Questions
Learn System Design the Structured Way
Prepflix's system design course follows this exact progression, from building blocks to full designs, with mock interviews to practice designing out loud.
Explore the Prepflix Course →