System Design 學習筆記 (System Design Vault)

系統設計面試準備筆記。以 PDF 教材為起點,整理成 Obsidian vault;採概念筆記 + 練習題的形式,幫助快速掌握面試常考主題。
涵蓋網路、分散式、API、儲存、快取、訊息、設計模式、基礎設施、維運等十二個資料夾。


從這裡開始

  1. 學習地圖 (MOC) — 全部章節索引與學習路徑
  2. 速查表 — 一頁速覽各主題決策樹
  3. 面試陷阱題 — 容易答錯的觀念集錦

章節結構

編號 主題 來源 PDF 檔案數 狀態
00 Dashboard (入口) 3
01 Networking 網路 1-01 8
02 Distributed Systems 分散式 1-02, 1-03, 1-04, 1-10, 1-21 6
03 API Design API 設計 1-05 ~ 1-09 6
04 Database Indexing 索引結構 1-11 ~ 1-16 7
05 Database Advanced (Transactions / Sharding / Replication) 1-17, 1-19, 1-20 4
06 Database Tech (PostgreSQL / DynamoDB / OLTP vs OLAP) 3-01 ~ 3-04
07 Caching & Storage 1-18, 3-07, 3-14, 3-15 2 🔄
08 Search & AI (RAG / Elasticsearch / Vector DB) 2-06, 2-08, 3-05, 3-06
09 Messaging & Coordination (Kafka / Queue / Zookeeper) 2-07, 3-12, 3-13, 3-16, 3-17
10 Design Patterns (Scaling / Long Tasks / Real-time) 2-01 ~ 2-05
11 Infrastructure (API Gateway / LB / Container / CDN) 3-08 ~ 3-11, 3-18
12 Operations & Reliability 4-01 ~ 4-04
目前 40

狀態:✅ 完成 / 🔄 部分完成 / ⬜ 未開始


建議學習順序

Week 1:基礎協定 + 分散式核心
  └─ 01-Networking → 02-Distributed-Systems

Week 2:API 與儲存基本盤
  └─ 03-API-Design → 04-Database-Indexing → 05-Database-Advanced

Week 3:技術選型 + 快取
  └─ 06-Database-Tech → 07-Caching-Storage → 08-Search-and-AI

Week 4:訊息與設計模式
  └─ 09-Messaging-Coord → 10-Design-Patterns

Week 5:基礎設施 + 維運衝刺
  └─ 11-Infrastructure → 12-Ops-and-Reliability → 重看 Exam-Traps

練習題分布

每個主題資料夾內含對應 Practice-XXX.md,目前累計:

題型分布(依教材整理慣例):


高頻面試重點(⭐⭐⭐)

  1. CAP 取捨 vs ACID-C:CP / AP / CA 三角,且能說清 ACID 的 C 跟 CAP 的 C 不同
  2. TCP vs UDP:哪些情境用哪個,QUIC 為何崛起
  3. REST / GraphQL / gRPC 選型:external/internal、over/under-fetching
  4. HTTP 冪等性:GET/PUT/DELETE 是 idempotent,POST/PATCH 不是
  5. Consistent Hashing:Hash Ring + Virtual Nodes,資料搬遷最小化
  6. B-Tree vs LSM Tree:讀多寫多取向、寫入放大、壓實機制
  7. 隔離等級 + Lost Update:超賣本質是 Lost Update,原子 UPDATE 即可(不要動到 Serializable)
  8. Sharding 時機 + Saga:50TiB / 10k TPS 寫才動 sharding;跨服務交易用 Saga 不用 2PC
  9. Replication Lag:Read-After-Write 用 LSN(不要用時鐘);Failover 要 fencing token 防 split brain
  10. Caching 五步驟:瓶頸 → 快取什麼 → 架構(Cache-Aside)→ 淘汰(LRU+TTL)→ 缺點(Stampede / Hot Key / 故障降級)

標籤系統

領域:#networking, #distributed-systems, #api-design, #database, #indexing, #caching, #performance
層次:#transport-layer, #application-layer, #architecture-pattern
模式:#scalability, #consistency, #availability, #fault-tolerance, #high-availability
技術:#rest, #graphql, #grpc, #http, #b-tree, #lsm-tree, #hash-index, #transactions, #acid, #replication, #sharding
治理:#authentication, #authorization, #api-security
規劃:#capacity-planning(量級數字、scale triggers)
類型:#concept-note, #practice, #moc, #dashboard, #exam-traps

使用建議

  1. 背骨架:先讀 速查表 速覽各主題決策樹
  2. 深入概念:依 MOC 順序讀各章節筆記
  3. 作題驗證:每讀完一個資料夾做對應 Practice-XXX.md
  4. 考前衝刺:重看 面試陷阱題,把混淆觀念清乾淨

資料來源

注意:本筆記為系統設計面試備考整理版本,不取代原版教材;面試前建議重看原本 PDF 章節以掌握細節與例外。