💯 🔥System Design Template 💯 🔥
Most difficult part of design interview is to structure the interview.In my experience i have faced this a lot in which i have a lot of knowledge but don't know how to put that knowledge out in structured format in 60 min interview. Please comment in case this helped you. Happy Interviewing

STRUCTURE

(1) PROBLEM & SCOPE Understanding. [5-10 min] =>

    (1) Use cases
    (2) Scenarios that will not be covered
    (3) Usage patterns
    (4) Assume High availability is required.
    (5) Who will use
    (6) How many will use

(2) CONSTRAINTS/ESTIMATIONS [5 min]

    (1) Throughput (QPS for read and write queries) ask per month(Bonus)
    (2) Read/Write ratio
    (3) Traffic estimates read and write QPS
    (4) Storage estimates -  How much data will be written per sec and total storage needed for 5 years
    (5) Memory estimates
    (6) Latency expected from the system (for read and write queries)

(3) DESIGN GOALS [5 min]

    (1) Latency and Throughput requirements
    (2) Consistency vs Availability  [Weak/strong/eventual => consistency | Failover/replication => availability]

(4) HIGH LEVEL DESIGN [5-10 min]

    (1) APIs for Read/Write scenarios for crucial components
    (2) Database schema
    (3) Basic algorithm
    (4) High level design for Read/Write scenario
    (5) Infrastructure (LB, messaging)

(5) DEEP DIVE [15-20 min]

    (1) Scaling the algorithm
    (2) Think about the following components, how they would fit in and how it would help
            a) DNS
            b) CDN [Push vs Pull]
            c) Load Balancers [Active-Passive, Active-Active, Layer 4, Layer 7]
            d) Reverse Proxy
            e) Application layer scaling [Microservices, Service Discovery]
            f) DB [RDBMS, NoSQL]
            g) Caches
			

p.s: This is curated from own experience and multiple other sources(thanks to all the OP's)

Comments (2)