Skip to content
prdlk
Esc
↑↓navigate↵open⌘Jpreview
On this page

System Design

Notes on System Design Interview — An Insider's Guide (Volumes 1 and 2): how to scope a problem, size it, and pick the parts that carry the load.

These notes follow Alex Xu’s System Design Interview — An Insider’s Guide, Volumes 1 and 2.

How an interview runs

Requirements

Pin down the functional requirements (what the system does) and the non-functional ones (latency, availability, consistency, scale) before drawing anything.

Estimates

Size the traffic, storage and bandwidth with back-of-the-envelope numbers, so later choices have a reason.

API and data model

Define the endpoints and the entities they read and write.

High-level design

Draw the request path end to end: clients, load balancers, services, caches, stores and queues.

Deep dives

Take the hardest part (a hot key, fan-out, a consistency guarantee) and work through its tradeoffs.

Foundations

Core designs

Advanced designs

Last updated on

Was this page helpful?