System Design Interview Reference Guide

Interview Framework

  • Step 1 (10 min): Understand the Problem Collect requirements, resolve ambiguities, understand constraints.

  • Step 2 (10 min): Conceptual Design Create high-level architecture diagram, show components’ interactions.

  • Step 3 (10 min): Detailed Analysis Examine system components, data flow, protocols, interactions.

  • Step 4 (10 min): Enhance the Design Identify improvements in scalability, reliability, maintainability.

  • Step 5 (10 min): Conclusion Review requirements, discuss trade-offs, answer remaining questions.

API Design Choices

  • REST: Building Scalable APIs using standard HTTP Methods.

  • GraphQL: Query Language for APIs, Allowing Clients to Request Specific data

  • gRPC: High Performance Framework For Remote Procedure Calls, Using HTTP/2.

Scalability

  • Replication: Creating multiple copies of data for redundancy and fast access

  • Sharding: Dividing data into smaller chunks across multiple servers for better performance and parallel processing.

  • Partitioning: Distributing incoming traffic evenly across multiple servers.

  • Load Balancing: Splitting data across multiple databases to balance the load.

Messaging Patterns

  • Synchronous: Immediate response required, direct client-server interaction (e.g., HTTP).

  • Async Messaging: Queue-based, no immediate response needed

  • Publish-Subscribe: Event-driven, multiple subscribers receive same message

Caching

  • In-memory Cache: Latency- In-memory cache is faster doesn’t require a network request like distributed.

  • Distributed Cache:

    • Sharing data/ Consistency-data can be shared across machines with a distributed cache.

    • Availability- distributed cache is not affected by individual server failures

  • Caching strategy

    • Write-through

    • Read-through

    • Write-around

    • Write-back

  • Requested data

    • No. Items

    • Cache Miss & Hit

    • Disk & Memory Usage

  • Eviction:

    • LRU (Least Recently Used)

    • LFU (Least Freq. used)

    • FIFO

    • MRU

    • Random Eviction Least Used

    • On-Demand Expiration

    • Garbage Collection