Skip to main content

Learning Resources

This module is populated from the local chunked books in library/raw/semester-08-system-design-leadership/books. Use this page as a source map, not as an instruction to read everything.

Source Stack

Book / SourceRoleHow to use it in this module
System Design Interview (Alex Xu)Primary teaching reference for the end-to-end methodCross-reference for concept pages and the four katas; Chapters 3-7 track Clusters 1-4
System Design Primer (donnemartin)Primary local chunked sourceDefault escalation target for API-style questions, cache/LB/CDN placement, storage family trade-offs, and latency numbers
Fundamentals of Software Architecture (Richards & Ford)Selective supportGo here for architecture-characteristics language, trade-off framing, and component-based thinking; Chapters 1-4 are the most useful
S7 Module 3 (DDD) and S7 Module 4 (API Design)Prerequisite knowledgeFraming uses bounded contexts; deep-dive component contracts reuse API design habits

Resource Map by Cluster

Cluster 1: Frame the Problem

NeedBest local chunkWhy
overall interview shape and framingSDP 01: How to approach a system design interviewBest compact opener; maps onto the four-phase structure
performance vs scalability vocabularySDP 02: Performance vs scalabilityForces the distinction that framing depends on
latency vs throughput vocabularySDP 03: Latency vs throughputShort, clarifies a common candidate error
back-of-envelope numbersSDP 23: Powers of two and latency numbersPrimary estimation reference; Jeff Dean numbers in the Chapter
architecture characteristics vocabularyFoSA: Architecture characteristics definedBest formal treatment of non-functional requirements
extracting characteristics from requirementsFoSA: Extracting characteristics from requirementsShows how the requirements list becomes architecture pressure

Cluster 2: High-Level Design

NeedBest local chunkWhy
real-world architectures to pattern-matchSDP 25: Real-world architecturesThe best short catalog of proven shapes
application tier and microservicesSDP 11: Application layer and microservicesCompact reading on stateless app tiers
SQL vs NoSQL decisionSDP 15: SQL or NoSQLShort decision table; pairs with the storage concept
SQL replication fundamentalsSDP 12: Database RDBMS replicationFor the "why replicas" conversation
NoSQL family overviewSDP 14: NoSQL databasesKV, document, wide-column, graph in one place
sharding and federationSDP 13: Database federation and shardingEssential before 100× scaling conversations
caching overviewSDP 16: Cache overview and levelsTaxonomy of cache layers
cache update patternsSDP 17: Cache update patternsCache-aside, write-through, write-back, refresh-ahead
load balancersSDP 09: Load balancerL4/L7, health checks, anycast
reverse proxiesSDP 10: Reverse proxyDistinguishes from LBs
CDNSDP 08: Content delivery networkPush vs pull CDN, invalidation
component-based thinkingFoSA: Component-based thinkingBox selection discipline

Cluster 3: Deep Dive

NeedBest local chunkWhy
async decoupling and queuesSDP 18: AsynchronismWhen to put a queue between components
consistency patternsSDP 05: Consistency patternsStrict, eventual, weak; read/write guarantees
availability patternsSDP 06: Availability patternsFail-over, replication, health-check patterns
CAP for design conversationsSDP 04: CAP theoremShort, correct framing for partition behaviour
data model disciplineFoSA: Database partitioningLogical vs physical partitioning discussions
connascenceFoSA: ConnascenceVocabulary for "what does a change to one component force in another"
discovering componentsFoSA: Discovering componentsActor/action and workflow-based decomposition

Cluster 4: Stress Test the Design

NeedBest local chunkWhy
how large-scale systems scaleSDP 25: Real-world architecturesReuse; shows 100× designs at real companies
availability patterns for failure walkSDP 06: Availability patternsFail-over classes and their TTR
database sharding for hot partitionsSDP 13: Database federation and shardingPrimary reference for partition-key discussions
scalability fundamentalsSDP 02: Performance vs scalabilityBottleneck analysis vocabulary
analyzing trade-offs under scaleFoSA: Analyzing trade-offsThe right language for "we accept this degradation because..."

Cluster 5: Communicate and Decide

NeedBest local chunkWhy
interview-question catalogSDP 24: System design interview questionsBank of prompts for self-run katas
the interview-approach structureSDP 01: How to approach a system design interviewRe-read now through the lens of the four phases
architectural thinkingFoSA: Architectural thinkingSenior-reviewer mindset; trade-off framing
trade-off analysisFoSA: Analyzing trade-offsPrimary support for concept 14
identifying characteristicsFoSA: Identifying architectural characteristicsFor the "what is this design optimizing for" paragraph

External Resources

Use these sparingly; the primary path is the concept pages plus local chunks. External links are included only when they add something the local material cannot: authoritative numbers, real-world cases, or up-to-date reference architectures.

Canonical Numbers & Primers

Reference Architectures & Case Studies

Blogs & Deep-Dive Sources

Optional Deep Dive

Use Rules

  • If the question is "what order should I do things in", the concept pages answer it. Do not start a design session by opening external resources.
  • If the question is "what specifically does this pattern look like at a big company", use High Scalability or AWS Architecture Center.
  • If the question is "what number should I use here", go to Jeff Dean's numbers first.
  • Open one chunk for one concept gap; do not chain-read the whole book.
  • If rereading is not fixing the problem, stop reading and redo the relevant drill from scratch -- the fluency gap is practice, not text.