System design is the interview round that most engineers underprepare for, and it is often the deciding factor at mid-to-senior level roles at Indian product companies. Unlike DSA (which has well-defined correct answers), system design tests your ability to make reasoned trade-offs in ambiguous, open-ended problems. The questions ('design Instagram', 'design a notification service', 'design a rate limiter') have no single right answer: what matters is your thinking process, your ability to clarify requirements, your knowledge of building blocks (databases, caches, queues, CDNs), and how you articulate trade-offs. This guide gives you the framework, the building blocks, and worked examples for 2026.
The System Design Interview Framework
A consistent framework is more valuable than memorising individual systems. Use this 6-step approach for every system design question. Step 1: Clarify requirements (5 minutes). Ask: 'Who are the users?' 'What are the functional requirements?' (what the system must do). 'What are the non-functional requirements?' (latency SLA, availability target, consistency requirements). 'What scale are we designing for?' (users per day, read vs write ratio, data size). Do not skip this step: a system design question without requirements is like a coding question without constraints. Step 2: Estimate scale (3 minutes). Back-of-envelope: 'If we have 100 million DAU and each user makes 10 requests per day, that is 1 billion requests per day, or approximately 12,000 requests per second (QPS). If each request is 1KB of data, storage grows by 1TB per day.' Step 3: Define the API (5 minutes). REST or GraphQL endpoints with request and response shapes. This forces clarity: if you cannot define the API, the system design is underspecified. Step 4: Design the database schema (5 minutes). What tables or collections are needed? What are the primary keys and indexes? What is the read vs write pattern? Does this need SQL (strong consistency) or NoSQL (scale and flexibility)? Step 5: High-level architecture (15 minutes). Draw the components: client, load balancer, application servers, database, cache, message queue, CDN, object storage. Show how data flows for the primary use case. Step 6: Deep dive and trade-offs (15 minutes). The interviewer will direct you to one component: 'How does the feed generation work at scale?' or 'How do you handle the hot partition problem in Cassandra?' Go deep on that component. End by identifying what would fail first at 10x scale and how you would address it.
System Design Building Blocks: What Every Interview Tests
The same building blocks appear across all system design questions. Master them once and apply them everywhere. Load Balancers: distribute traffic across servers. Layer 4 (TCP level: fast, no content inspection) vs Layer 7 (HTTP level: can route by URL, host, or header). Active-active vs active-passive for high availability. Caches: client-side caching (browser cache, CDN), server-side application cache (Redis, Memcached). Cache eviction policies: LRU (Least Recently Used), LFU (Least Frequently Used), TTL (Time to Live). Cache invalidation strategies: write-through (update cache on write, always consistent, higher write latency), write-behind (update cache immediately, async database write, risk of data loss), cache-aside (read-through: read from cache, on miss read from database and populate cache). Databases: relational (PostgreSQL, MySQL: ACID, strong consistency, SQL queries) vs NoSQL. NoSQL families: key-value (Redis, DynamoDB: fast reads by primary key), document (MongoDB: flexible schema, denormalised documents), wide-column (Cassandra: time-series, write-heavy workloads, eventual consistency). Message queues: Kafka for high-throughput, durable event streaming with replay. SQS for simple queue semantics. RabbitMQ for complex routing. CDN (Content Delivery Network): CloudFront, Akamai, Fastly. Cache static assets (images, CSS, JS) close to users to reduce latency. Object storage: S3 for unstructured data (images, videos, documents) at low cost. Consistent hashing: for distributing load across cache nodes or database shards so that adding/removing a node only moves a fraction of the keys.
Worked Examples: The 6 Most Common Indian System Design Questions
URL shortener (bit.ly): Scale: 100M URLs shortened per day, 1B redirects per day. API: POST /shorten (longUrl) returns shortUrl. GET /{shortCode} redirects to longUrl. Schema: urls table (id, shortCode, longUrl, createdAt, userId). Encode: base62 (a-z, A-Z, 0-9) of a 7-character code gives 62^7 = 3.5 trillion unique URLs. Architecture: application server generates shortCode, writes to PostgreSQL, caches in Redis (shortCode -> longUrl, TTL 1 hour). On redirect: check Redis first (90% cache hit rate), fall back to database. Instagram feed: Scale: 1B users, 100M daily active uploaders, 1B feed reads per day. Read-heavy: read:write = 100:1. Architecture: media uploads go to S3 via CDN. Feed generation: fan-out on write (push model) for users with <1M followers: when a user posts, write the post ID to each follower's feed table in Cassandra. Fan-out on read (pull model) for celebrities (1M+ followers): too expensive to write to 1M feeds on each post. On read, merge the user's feed cache with real-time posts from the 5 celebrities they follow. Uber-style ride sharing: Location service: drivers send GPS coordinates every 5 seconds. Store in Redis Geo (sorted set with geohash) for fast nearest-driver queries. Matching: when rider requests, find N nearest available drivers using Redis GEORADIUS. Match algorithm considers ETA and driver rating. Rate limiter: Algorithm: sliding window counter. Store in Redis. Key: userId:windowStartTimestamp. On each request: increment the counter. If counter > limit, reject. If the window has expired, reset. Complexity: O(1) per request. Notification service: Components: notification intake API (accepts message, userId, type: push/email/SMS). Kafka topic per channel type (push, email, SMS). Fanout service reads from Kafka and calls FCM (for Android push), APNs (for iOS), Sendgrid (email), or Twilio (SMS). Retry queue for failed deliveries. Payment gateway: Idempotency is the core design constraint: every payment API call must have an idempotency key (UUID generated by the client). Database: payments table (paymentId, idempotencyKey UNIQUE, amount, currency, status, userId, merchantId). On retry: check idempotencyKey first, return existing result if found. Eventual consistency between payment confirmation and bank settlement: use Kafka to record the payment event and process settlement asynchronously.
Practise system design questions with HireStepX's AI voice interviewer. Get feedback on whether you clarified requirements, estimated scale, and articulated trade-offs clearly — the exact criteria interviewers use.
Practice freeHow to Practise System Design for Indian Interviews
System design cannot be prepared by reading alone. You must practise explaining systems out loud, which is how the interview works. Reading phase (weeks 1-2): Designing Data-Intensive Applications (DDIA) by Martin Kleppmann is the best foundation for distributed systems concepts. Supplement with the System Design Primer on GitHub (free, well-organised). Understanding phase (weeks 2-3): for each system in the worked examples above, draw the architecture on paper without looking at references. Identify what each component does and why it is there. Practice phase (weeks 3-6): this is where most candidates underinvest. Pick a system design question and set a timer for 45 minutes. Speak your design out loud as you draw it, as if the interviewer is in the room. The act of explaining why you made each decision reveals gaps in your understanding that reading does not. Record yourself: listening back to a recording of your system design explanation is uncomfortable but reveals filler words, incomplete thoughts, and areas where you jumped to a conclusion without justification. Use HireStepX to practise the verbal explanation of system design: the AI evaluates whether your clarification questions were complete, whether you quantified scale before designing, and whether you articulated trade-offs clearly. The difference between a candidate who reads system design and one who practises explaining it is immediately obvious to interviewers: the latter can answer follow-up questions confidently because they understand the 'why', not just the 'what'.
Frequently asked questions
Explore more