InterviewHubPRO
Section Overview
Q1

Question 1 of 50

Part 1: Foundational Distributed Systems Concepts & Trade-offs (1 - 10)

2%
System Design (50 Qs)•Part 1: Foundational Distributed Systems Concepts & Trade-offs (1 - 10)

What is System Design and What is the Standard 4-Step Framework for Technical Interviews?

In Simple Words: System Design is the process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified business and technical requirements at scale. In an interview, interviewers evaluate how you decompose ambiguous requirements, estimate scale, make intentional architectural trade-offs, and design for high availability, fault tolerance, and low latency.

The 4-Step System Design Interview Framework:

  1. Step 1: Understand the Problem & Establish Design Scope (5-7 mins)
    • Functional Requirements: What core features are in-scope? What is out-of-scope?
    • Non-Functional Requirements: Latency SLA (e.g. p99 < 100ms), Availability (99.99%), Throughput (QPS), Read-to-Write ratio, Data Durability.
    • Back-of-the-Envelope Estimation: DAU, Read QPS, Write QPS, Storage capacity over 5 years, Network egress bandwidth.
  2. Step 2: High-Level Architecture & API Design (10-12 mins)
    • Define external APIs (REST / gRPC / GraphQL endpoints with parameters and responses).
    • Core Data Models & Schemas (SQL vs NoSQL).
    • High-Level Component Diagram: DNS, CDN, Load Balancer, API Gateway, Application Microservices, Cache layer, Primary/Replica Databases, Message Queues.
  3. Step 3: Design Deep Dive (15-20 mins)
    • Drill into specific bottlenecks and critical path components.
    • Data partitioning (Consistent Hashing), Caching strategy (Cache-Aside, TTL), Concurrency control (Distributed Locks), Database replication lag, and Failure handling.
  4. Step 4: Wrap-Up & Bottleneck Analysis (3-5 mins)
    • Identify Single Points of Failure (SPOF), Monitoring & Alerts, SLA monitoring, and Auto-scaling triggers.
Architecture Flowchart
flowchart TD
    Client["Client (Web / Mobile / IoT)"] --> DNS["Route 53 / Geo-DNS"]
    DNS --> CDN["Edge CDN (Cloudflare / CloudFront)"]
    CDN --> LB["Layer 7 Load Balancer (Envoy / NGINX)"]
    LB --> Gateway["API Gateway (Auth, Rate Limiting, Routing)"]
    Gateway --> SvcA["Core Application Service"]
    Gateway --> SvcB["Analytics & Search Service"]
    SvcA --> Cache["Distributed Cache (Redis Cluster)"]
    SvcA --> DB_Primary["Primary DB (PostgreSQL / DynamoDB)"]
    DB_Primary -.->|"Async Replication"| DB_Replica["Read Replicas"]
    SvcA --> Queue["Event Stream / Message Broker (Kafka)"]
    Queue --> Worker["Background Async Workers"]