System Design 學習地圖 (MOC)

進度總覽

資料夾 主題 PDFs 狀態
01-Networking 網路層次、TCP/UDP、HTTP、API、即時通訊、LB、故障處理 1-01
02-Distributed-Systems Client-Server、CAP、Scalability、Consistent Hashing、效能數字 1-02~04, 1-10, 1-21
03-API-Design API Design、REST、GraphQL、RPC、Security 1-05~09
04-Database-Indexing DB Indexing、B-Tree、LSM Tree、Hash Index、Geospatial、Inverted Index 1-11~16
05-Database-Advanced Transactions、Sharding、Replication 1-17, 1-19, 1-20
06-Database-Tech Database、PostgreSQL、DynamoDB、OLTP vs OLAP 3-01~04
07-Caching-Storage Caching、Blob Storage、Distributed Cache、Redis 1-18, 3-07, 3-14~15
08-Search-and-AI Search System、RAG、Elasticsearch、Vector DB 2-06, 2-08, 3-05~06
09-Messaging-Coord Data Pipeline、Queue、Kafka、Distributed Lock、Zookeeper 2-07, 3-12~13, 3-16~17
10-Design-Patterns Scaling Reads/Writes、Long Running Tasks、Large Blobs、Real-time 2-01~05
11-Infrastructure API Gateway、Load Balancer、Container、Serverless、CDN 3-08~11, 3-18
12-Ops-and-Reliability Contention、Overload Protection、Reliable Delivery、Observability 4-01~04
13-Case-Studies 真實大型應用設計案例(QR/Messenger/YouTube…) 5-01~14

Topic Map

01-Networking

章節 筆記
網路層次、DNS、TCP Handshake、Web 請求流程 網路層次與請求流程
TCP vs UDP vs QUIC 傳輸層協定 TCP vs UDP
HTTP methods、狀態碼、HTTPS 安全 HTTP 與 HTTPS
REST、GraphQL、gRPC API 範式比較
SSE、WebSocket、WebRTC 即時通訊協定
客戶端 LB、L4/L7 LB、演算法、CDN、區域分片 負載平衡
重試退避、冪等性、熔斷器 故障處理模式

02-Distributed-Systems

章節 筆記
Client/Server 職責、Thin/Thick Client、P2P 主從架構
CAP 定理、CP vs AP、最終一致性 CAP 定理
Scalability、垂直 vs 水平擴展、Throughput 可擴展性
Hash Ring、Virtual Nodes、搬遷最小化 一致性雜湊
Latency / throughput 量級、scale 觸發點 系統設計關鍵數字

03-API-Design

章節 筆記
決策樹:External/Internal、Over/Under-fetching API 設計決策框架
REST:HTTP 動詞、冪等性、參數、狀態碼、反模式 REST 架構風格
GraphQL:Query/Mutation/Subscription、N+1、cache GraphQL 查詢語言
RPC:方法導向、Protobuf、gRPC streaming、IDL RPC 與 gRPC
Authentication / Authorization、JWT / OAuth / mTLS、RBAC / ABAC API 安全

04-Database-Indexing

章節 筆記
索引必要性、Full Table Scan、trade-offs 資料庫索引概論
B-Tree / B+Tree、範圍查詢、InnoDB B-Tree 索引
MemTable/WAL/SSTable、Compaction、Bloom Filter LSM Tree
Hash Table、碰撞處理、O(1) 等值查詢 雜湊索引
Geohash / Quadtree / R-Tree / S2 / H3 地理空間索引
Term Dictionary、Posting List、phrase query 倒排索引

05-Database-Advanced

章節 筆記
ACID、隔離等級、MVCC、Lost Update、Saga vs 2PC 資料庫交易
Partitioning vs Sharding、shard key、hot spot、跨 shard 資料分片
Single/Multi-leader/Leaderless、quorum、replication lag 資料複寫

06-Database-Tech

章節 筆記
兩維度選型、RDBMS/NoSQL 五類、OLTP/OLAP、Vector DB 資料庫總覽與選型
B-tree/GIN/JSONB/PostGIS、WAL 寫入、隔離與列鎖、複製 PostgreSQL
Partition/Sort Key、GSI/LSI、一致性、RCU/WCU、DAX/Streams DynamoDB
Row vs Column、星型 schema、ETL/CDC/ELT、HTAP OLTP vs OLAP

07-Caching-Storage

章節 筆記
Cache-Aside、CDN、In-Process、淘汰策略、Stampede、Hot Key 快取機制
File/Block/Object、耐久性、儲存分層/生命週期、Presigned URL、CRR 物件儲存
Consistent Hashing、Hot Key、Cache Stampede、Replication/HA、Failure Modes、Invalidation、Multi-Region 分散式快取
In-memory 資料結構、單執行緒原子性、Cluster 分片、分散式鎖、Sorted Set 排行榜、限流、Streams、Pub/Sub Redis

08-Search-and-AI

章節 筆記
倒排索引、CDC indexing pipeline、BM25、Autocomplete 搜尋系統
Foundation model 限制、Ingestion、Hybrid Search、Agentic 檢索增強生成 RAG
Lucene/segment、inverted index+doc values、shard、search_after Elasticsearch
embedding、KNN/ANN、HNSW/IVF/LSH、hybrid/filter 向量資料庫

09-Messaging-Coord

章節 筆記
Batch vs Stream、Spark/Flink、Lambda/Kappa、CDC、容錯 資料管線設計
Producer/Consumer、解耦、削峰填谷、投遞語義、DLQ、backpressure、分區順序 訊息佇列
Partition/順序、Consumer Group、offset、replication/acks、hot partition、at-least-once、DLQ Kafka
互斥、TTL 鎖、Redis/ZooKeeper/DB 鎖、Redlock、fencing token、殭屍鎖、效率鎖 vs 正確性鎖 分散式鎖
分散式協調、ZNode/ephemeral/sequential、ensemble quorum、watches、leader 選舉、ZAB 共識、herd effect ZooKeeper

10-Design-Patterns

章節 筆記
index→replica→cache、hot key、cache stampede 讀取擴展
垂直選型、sharding、queue/load shedding、batching 寫入擴展
queue + worker pool、DLQ、backpressure、idempotency 長時間執行任務
Presigned URL、Multipart、CDN、狀態同步(事件+對帳) 大型檔案處理
兩個 hop、SSE/WebSocket/WebRTC、Pub-Sub 即時更新

11-Infrastructure

章節 筆記
路由/認證/限流/SSL 終止、vs LB、BFF、SPOF API 閘道
流量分配/健康檢查/HA、演算法、L4 vs L7、Sticky 負載平衡器
VM vs 容器、Docker、K8s(Pod/Deployment/HPA)、無狀態 容器化與編排
FaaS/BaaS、Cold Start、事件驅動、連線池、vendor lock-in 無伺服器運算
Edge/PoP/Origin、Cache Hierarchy、快取失效(TTL/Hash Busting/Purge/SWR)、Edge Compute、就近導流、Multi-CDN 內容傳遞網路

12-Ops-and-Reliability

章節 筆記
Race condition、Atomicity、Pessimistic/Optimistic、Isolation Level、2PC、Saga、Distributed Lock、hot partition 處理競爭
雪崩、Rate/Concurrency Limiting、Queue 削峰、Auto-scaling、Load Shedding、Request Prioritization、Bulkhead、Backpressure 過載保護
超時、重試、冪等性、退避加抖動、故障切換、降級回應、熔斷器、at-least-once 可靠交付
Metrics/Logs/Traces 三支柱、四個黃金信號、對症狀告警、OpenTelemetry、SLI/SLO/SLA、Error Budget 可觀測性

13-Case-Studies

案例 / 整合練兵場 layer:把前面所有概念套用到真實大型應用設計。

章節 筆記
URL→QR + redirect;唯一 token(SHA-256+Base62+UNIQUE 重試)、read-heavy cache+CDN、302 而非 301、200GB 不 sharding QR Code 產生器
寫多位置 + 爆發讀 geo + 大規模 fan-out:S2/H3 cell 反向索引把 geo 比對攤到寫入時、三段 queue + per-channel worker、Outbox 冪等 + supersession 去重 地震通知系統
金融撮合交易所:in-memory order book + WAL、依 market_id 分片(每市場單一 sequencer)、Kafka 扇出 CQRS(MDS/OQS)、primary-replica failover、鏈下撮合鏈上結算永不回滾 Polymarket 預測市場
價格追蹤:hybrid 爬取(extension 群眾外包 + 優先式 crawler)、CDC/dual-write 驅動 event-driven 通知、pre-aggregation 加速歷史圖表、append-only time-series Amazon 價格追蹤
即時地理配對 + 強一致派遣:Redis GEO 扛位置寫入、queue 緩衝尖峰、Redis per-ride lock + Ride DB partial unique index 兩層一致性管 1 AV:1 Ride Robotaxi 叫車
分析型大型應用:海量收聽 ingest、CDC→OLAP 解耦聚合、batch vs stream 新鮮度取捨、30s 有效播放去重、OLAP dim 分片解 hot shard Spotify 熱門排行
即時通訊:WebSocket 雙向長連線、chat_id 分片 pub/sub(訊息順序權威)、monotonic message_id 解亂序、離線 store-and-forward(last_read_message_id) Messenger 即時通訊
可靠非同步投遞:queue 解耦 + 退避重試→retryable store→DLQ + suspend 階梯、event_id/endpoint_id 雙 partition、HMAC 簽章 Webhook 平台
協作編輯:OT vs CRDT 衝突解決、WebSocket 中心化序列器、consistent hashing 文件路由、snapshot/compaction 控成本、Kafka+SSE viewer fan-out Google Docs 協作編輯
影音平台:presigned URL 直傳 S3 + multipart 續傳、ABR/manifest 串流、轉碼 DAG pipeline、metadata 水平分割 NoSQL、CDN edge 卸載頻寬 YouTube 影音平台
分散式排程(cron):watcher/worker 用 queue 解耦、Visibility Timeout 當 heartbeat 達 at-least-once、time_bucket partition 避免 broadcast read、append-only RunEvent outbox 驅動 recurring ChatGPT Tasks 排程
訂房並發控制經典題:搜尋走可用性(<500ms)、訂房走一致性(絕不 double booking),用邏輯可用性 + 原子 conditional write 搶位而不長持鎖 Airbnb 訂房平台
RAG 客服 Agent:雙儲存 + intent router 平行檢索、四層防幻覺、多輪改寫、streaming 壓 TTFT、離線 ingestion 保即時 Q&A 客服 Agent
LLM 推論 API:dual-trigger 動態 batching、request_id 關聯 async request-reply、Redis Streams 佇列、Pub/Sub 通知、GPU auto-scaling + 三層過載保護 LLM 推論 API

Practice Notes

題組 題數 連結
網路基礎 21 題 網路基礎練習題
分散式基礎 35 題 分散式基礎練習題
API 設計 26 題 API 設計練習題
索引結構 25 題 索引結構練習題
資料庫進階 24 題 資料庫進階練習題
資料庫技術 18 題 資料庫技術練習題
快取與儲存 30 題 快取與儲存練習題
設計模式 33 題 設計模式練習題
搜尋與 AI 28 題 搜尋與 AI 練習題
訊息與協調 27 題 訊息與協調練習題
基礎設施 32 題 基礎設施練習題
維運與可靠性 34 題 維運與可靠性練習題
案例研究 22 題 案例研究練習題

Study Tools

工具 說明 連結
Exam Traps 面試陷阱、易錯重點 面試陷阱題
Quick Reference 全主題速查表 速查表

Tag Index

Tag 相關主題 層級
#networking 所有網路相關筆記 頂層領域
#distributed-systems CAP、Scalability、分散式基礎 頂層領域
#system-design 面試導向內容 頂層領域
#transport-layer TCP, UDP, QUIC 領域細分(需搭配 #networking)
#application-layer HTTP, REST, GraphQL, SSE, WS 領域細分(需搭配 #networking)
#rest REST 架構風格 領域細分(需搭配 #api-design)
#graphql GraphQL schema / query 領域細分(需搭配 #api-design)
#rpc RPC 通訊模型 領域細分(需搭配 #api-design)
#grpc gRPC、Protobuf、HTTP/2 領域細分(需搭配 #api-design、#rpc)
#api-security AuthN / AuthZ、JWT、OAuth、mTLS、RBAC、ABAC 領域細分(需搭配 #api-design)
#authentication API Key、JWT、OAuth、mTLS 細節(需搭配 #api-security)
#authorization RBAC、ABAC、Scope 細節(需搭配 #api-security)
#microservices 內部服務通訊、IDL 技法
#decision-framework API 選型決策樹 筆記類型
#load-balancing L4/L7 LB, CDN, 區域分片 領域細分(需搭配 #networking)
#fault-tolerance 重試, 冪等性, 熔斷器 領域細分(需搭配 #networking)
#client-server Client-Server 架構 領域細分(需搭配 #distributed-systems)
#cap-theorem CAP、CP、AP、最終一致性 領域細分(需搭配 #distributed-systems)
#scalability 垂直/水平擴展、Throughput 領域細分(需搭配 #distributed-systems)
#api-design REST, GraphQL, gRPC 技法
#architecture-pattern 架構模式相關 技法
#protocol 各別協定筆記 細節
#consistent-hashing Hash Ring、Virtual Nodes 領域細分(需搭配 #distributed-systems)
#sharding 資料分片 routing 技法
#database 資料庫相關 頂層領域
#indexing 索引結構總稱 領域細分(需搭配 #database)
#b-tree B-Tree / B+Tree 細節(需搭配 #indexing)
#lsm-tree LSM Tree、MemTable、SSTable 細節(需搭配 #indexing)
#hash-index Hash Index、碰撞處理 細節(需搭配 #indexing)
#geospatial Geohash、R-Tree、S2、H3 細節(需搭配 #indexing)
#inverted-index Term Dict、Posting List、全文檢索 細節(需搭配 #indexing)
#full-text-search 全文檢索、Elasticsearch / Lucene 技法
#write-heavy 寫密集場景 筆記類型
#transactions ACID、隔離等級、MVCC、Lost Update 領域細分(需搭配 #database)
#acid ACID 四屬性 細節(需搭配 #transactions)
#replication Leader/follower、quorum、CDC 領域細分(需搭配 #database)
#high-availability Failover、split brain、fencing 技法
#caching Cache-Aside、Write-Through、淘汰、Stampede 頂層領域
#performance Latency / throughput 取捨 頂層領域
#capacity-planning Numbers to Know、scale triggers 領域細分(需搭配 #distributed-systems)
#practice 練習題 筆記類型
#dashboard Dashboard 檔案 筆記類型
#exam-traps 面試陷阱 筆記類型
#design-patterns 讀寫擴展、async、大型檔案、即時更新 頂層領域
#scaling-reads 讀取擴展、replica、cache 演進 領域細分(需搭配 #design-patterns)
#scaling-writes 寫入擴展、sharding、batching、load shedding 領域細分(需搭配 #design-patterns)
#async 非同步處理、長時間任務 領域細分(需搭配 #design-patterns)
#message-queue Kafka、SQS、RabbitMQ、DLQ 技法
#worker-pool Worker、backpressure、idempotency 細節(需搭配 #async)
#real-time Polling、SSE、WebSocket、Pub/Sub 領域細分(需搭配 #design-patterns)
#websocket 全雙工、L4 LB、持久連線 細節(需搭配 #real-time)
#sse Server-Sent Events、單向推送 細節(需搭配 #real-time)
#pub-sub Pub/Sub、topic 廣播、consistent hashing 細節(需搭配 #real-time)
#blob-storage Presigned URL、Multipart、直傳、S3 領域細分(需搭配 #design-patterns)
#cdn Edge cache、Range Request、簽署 URL 技法
#search-and-ai 搜尋系統、RAG 頂層領域
#search-system 倒排索引、BM25、CDC pipeline 領域細分(需搭配 #search-and-ai)
#elasticsearch Shard、alias、Aggregation 技法
#rag Ingestion、hybrid search、agentic 領域細分(需搭配 #search-and-ai)
#llm Foundation model、hallucination 技法
#vector-database Embedding、semantic search、Pinecone 細節(需搭配 #rag)
#messaging-coord Data Pipeline、Kafka、串流處理 頂層領域
#data-pipeline Batch/Stream、Lambda/Kappa、ETL/ELT 領域細分(需搭配 #messaging-coord)
#kafka 事件串流、partition、replay 技法
#stream-processing Flink、window、watermark、event time 細節(需搭配 #data-pipeline)
#partitioning Horizontal / Vertical partitioning 技法
#caching-storage Caching、Blob Storage(儲存層總稱) 頂層領域
#postgresql B-tree/GIN/JSONB、WAL、隔離、複製 細節(需搭配 #database)
#dynamodb Partition/Sort Key、GSI/LSI、RCU/WCU 細節(需搭配 #database)
#nosql KV/Document/Wide-Column/Graph、BASE 領域細分(需搭配 #database)
#oltp-olap Row vs Column、向量化、星型 schema 領域細分(需搭配 #database)
#data-warehouse ETL/CDC/ELT、dbt、Lakehouse、HTAP 技法
#infrastructure API Gateway、LB、Container、Serverless 頂層領域
#api-gateway 路由、認證、限流、SSL 終止、BFF 領域細分(需搭配 #infrastructure)
#load-balancer 健康檢查、L4/L7、演算法、Sticky Session 領域細分(需搭配 #infrastructure)
#container Docker、Image/Container、namespace/cgroups 領域細分(需搭配 #infrastructure)
#kubernetes Pod/Deployment/Service/HPA、滾動更新 細節(需搭配 #container)
#serverless FaaS、Lambda、Cold Start、event-driven 領域細分(需搭配 #infrastructure)
#distributed-cache Consistent Hashing、Hot Key、Stampede、HA 細節(需搭配 #caching-storage)
#redis In-memory、單執行緒、Cluster、Sorted Set 細節(需搭配 #caching-storage)
#distributed-lock TTL 鎖、Redlock、fencing token、殭屍鎖 細節(需搭配 #messaging-coord)
#zookeeper ZNode、ensemble quorum、watches、ZAB、選舉 細節(需搭配 #messaging-coord)
#ops-reliability 競爭、過載保護、可靠交付、可觀測性 頂層領域
#contention Race condition、樂觀/悲觀鎖、隔離等級、Saga 細節(需搭配 #ops-reliability)
#overload-protection 限流、Load Shedding、Bulkhead、Backpressure 細節(需搭配 #ops-reliability)
#reliable-delivery 重試、冪等、退避抖動、熔斷器、at-least-once 細節(需搭配 #ops-reliability)
#observability Metrics/Logs/Traces、黃金信號、SLI/SLO/SLA 細節(需搭配 #ops-reliability)
#case-study 真實大型應用設計案例 筆記類型

Tag 規則:全部英文小寫 kebab-case。細節標籤必須同時附帶上層領域標籤。
案例 tag 政策13-Case-Studies#case-study 為導航主 tag;各案例額外攜帶描述該系統的領域 tag(如 #financial-exchange#video-streaming#ride-hailing),屬自由標註、不需逐一登記於本表


Weak Areas


Non-core Topic Policy

來源 內容 處理
1-01 PDF 自我測驗 Q1–Q6 已整合 — 融入 Practice - 網路基礎
1-02 PDF 自我測驗 Q1–Q4 已整合 — 融入 Practice - 分散式基礎
1-03 PDF 自我測驗 Q1–Q4 已整合 — 融入 Practice - 分散式基礎
1-04 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 分散式基礎
1-05 PDF 決策樹圖(無測驗) 已整合 — 融入 API 設計決策框架
1-06 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - API設計
1-07 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - API設計
1-08 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - API設計
1-09 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - API設計
1-10 PDF 自我測驗 Q1–Q4 已整合 — 融入 Practice - 分散式基礎
1-11 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-12 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-13 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-14 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-15 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-16 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 索引結構
1-17 PDF 自我測驗 Q1–Q6 已整合 — 融入 Practice - 資料庫進階
1-18 PDF 自我測驗 Q1–Q6 已整合 — 融入 Practice - 快取與儲存
1-19 PDF 自我測驗 Q1–Q5 已整合 — 融入 Practice - 資料庫進階
1-20 PDF 自我測驗 Q1–Q6 已整合 — 融入 Practice - 資料庫進階
1-21 PDF 自我測驗 Q1–Q3 已整合 — 融入 Practice - 分散式基礎 Part 5
2-01 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 設計模式
2-02 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 設計模式
2-03 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 設計模式
2-04 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 設計模式
2-05 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 設計模式
2-06 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 搜尋與 AI
2-07 PDF Deep Dive 問題 已整合 — 融入概念筆記 callout + Practice - 訊息與協調
2-08 PDF 設計考量(無測驗) 已整合 — 融入概念筆記 callout + Practice - 搜尋與 AI
3-01 PDF Deep Dive(選型三問) 已整合 — 融入概念筆記 + Practice - 資料庫技術
3-02 PDF Deep Dive(拍賣競態 / 索引) 已整合 — 融入概念筆記 + Practice - 資料庫技術
3-03 PDF Deep Dive(GSI / 一致性 / 定價) 已整合 — 融入概念筆記 + Practice - 資料庫技術
3-04 PDF Deep Dive(column / HTAP / CDC) 已整合 — 融入概念筆記 + Practice - 資料庫技術
3-05 PDF 設計觀念(無測驗) 已整合 — 融入概念筆記 callout + Practice - 搜尋與 AI
3-06 PDF Gotchas / Numbers(無測驗) 已整合 — 融入概念筆記 callout + Practice - 搜尋與 AI
3-07 PDF Deep Dive(Blob vs DB / 公開 / 全球) 已整合 — 融入概念筆記 + Practice - 快取與儲存
3-08 PDF Deep Dive(SPOF / 認證 / 效能) 已整合 — 融入概念筆記 + Practice - 基礎設施
3-09 PDF L4/L7、演算法(無測驗) 已整合 — 融入概念筆記 + Practice - 基礎設施
3-10 PDF Deep Dive(崩潰 / 機密 / VM) 已整合 — 融入概念筆記 + Practice - 基礎設施
3-11 PDF Deep Dive(Cold Start / 成本 / lock-in) 已整合 — 融入概念筆記 + Practice - 基礎設施
3-12 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 訊息與協調
3-13 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 訊息與協調
3-14 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 快取與儲存
3-15 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 快取與儲存
3-16 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 訊息與協調
3-17 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 訊息與協調
3-18 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 基礎設施
4-01 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 維運與可靠性
4-02 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 維運與可靠性
4-03 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 維運與可靠性
4-04 PDF Deep Dive 已整合 已整合 — 融入概念筆記 + Practice - 維運與可靠性
5-01 PDF 案例 Deep Dive 已整合 — 融入 QR Code 產生器 + Practice - 案例研究