Track 01: Core Fundamentals

The ideas every system design answer is built from: what to ask before you draw anything, how a system is layered and scaled, the numbers that describe it (latency, throughput, availability), the trade-offs between them (CAP, PACELC, consistency), and what happens when parts of it fail. Nineteen short lectures, about 52 minutes of video in all, each with a written lecture that goes further than the video can.

How this track works

  • Each lecture is a video of two to three minutes on the channel and a written lecture here. On the site the video plays at the top of the lecture's page, with its chapters; the text underneath has the example in code, a diagram, exercises with answers and the interview questions with what a strong answer covers.
  • Go in order. Every lecture assumes the ones before it and nothing outside this track; the first has no prerequisites.
  • The same running example, a small web app that grows from one server to a system with replicas, a cache and a CDN, comes back through the track, so the ideas attach to something you can picture.
  • Lectures whose written version is not ready yet are marked Soon in the sidebar. Their video is already up; open the lesson to watch it.

Lectures

# Lecture What you'll be able to do Video
01 What Is System Design? HLD vs LLD Explain what system design is, how HLD differs from LLD, and what an interviewer is listening for 2:24
02 Client-Server and Multi-Tier Architecture Describe one-, two-, three- and N-tier systems, and why each tier can scale on its own 2:46
03 Functional Requirements Turn a vague prompt into three to five core use cases before drawing a single box 2:29
04 Non-Functional Requirements State latency, availability and scale targets, the numbers that decide the architecture 2:56
05 Trade-offs and How to Justify a Design Justify any design choice by naming what it improves and what it costs 2:51
06 Vertical Scaling Know when scaling up is the right first move, and the four limits that end it 2:35
07 Horizontal Scaling Scale out behind a load balancer with stateless services and autoscaling 2:37
08 Latency Think in percentiles and latency budgets, with the numbers every engineer should know 2:57
09 Throughput and Little's Law Connect requests per second, concurrency and latency with Little's Law 2:59
10 Availability Read the nines, MTBF and MTTR, and work out availability in series and in parallel 2:55
11 Reliability, Availability and Durability Tell "up" from "correct" from "not lost", and design for each 2:50
12 Scalability Describe load precisely, and see why systems stop scaling long before the servers run out 2:43
13 CAP Theorem State what CAP really says, and choose consistency or availability on purpose 2:56
14 PACELC Theorem Reason about the latency-versus-consistency trade-off in the 99% of the time nothing is broken 2:40
15 Consistency Models Place linearizable, causal and eventual consistency on one spectrum and pick by need 2:51
16 Fault Tolerance Tell a fault from a failure, and limit the blast radius with zones and redundancy 2:41
17 Single Point of Failure Find single points of failure and remove them, active-passive or active-active 2:43
18 Simple Beats Clever Weigh cost, performance and complexity before adding another box to the diagram 2:39
19 Stateless vs Stateful Explain why state breaks scaling, and how sessions, sticky routing and websockets deal with it 2:54

Start here → 01-what-is-system-design/README.md

Back to the course index: ../README.md


When this track is done, the depth is in backend/, and the practice is in track 14, System Design Interview Practice: capacity estimation, a framework for the whiteboard, and the classic designs end to end.