Case Studies:系統設計案例分析

這個目錄的軸是**「拆解別人家的技術系統」**。資料來自:

  • 各公司的技術部落格(Netflix Tech Blog、Uber Engineering、Stripe Engineering…)
  • 技術論文(Google Dynamo、Amazon Aurora、Facebook TAO…)
  • 研討會 talks(QCon、AWS re:Invent、KubeCon、RustConf…)
  • Open Source 原始碼(PostgreSQL、Redis、Kubernetes、Git…)

跟姊妹目錄的差別:

目錄
case-studies/(本目錄)拆別人家技術系統(Twitter、K8s 怎麼運作)
business-cases/拆別人家商業系統(金流、訂閱、分潤)
system-design/系統設計方法論(怎麼從零設計)
ops-notes/自己踩過的

Stage:🌱 seed(還沒寫) / 🌿 growing / 🌳 mature

子目錄規劃

主題群案例數子目錄路徑
C01 社群/動態4先扁平(未達 5)
C02 影音串流4先扁平
C03 金融/支付4先扁平
C04 即時通訊4先扁平
C05 搜尋/地圖/派單4先扁平
C06 電商4先扁平
C07 基礎建設 OSS8case-studies/oss/
C08 AI/ML 系統4先扁平
C09 台灣在地3先扁平(需公開資料)

C01 社群/動態系統

#案例分析重點stage
01Twitter TimelineFan-out on write vs read、cache 策略🌱
02Instagram FeedML 排序、圖片 CDN🌱
03TikTok 推薦引擎短影音、實時推薦、用戶模型🌱
04Threads 遷移從 Instagram 拉新、ActivityPub 整合🌱

C02 影音串流

#案例分析重點stage
01Netflix CDN 與 Open ConnectCDN 部署、峰值處理🌱
02YouTube 轉碼 Pipeline多解析度、adaptive bitrate🌱
03Zoom 視訊架構Jitter buffer、SFU vs MCU🌱
04Twitch 低延遲串流LL-HLS vs WebRTC🌱

C03 金融 / 支付

#案例分析重點stage
01Stripe Payment ArchitectureIdempotency、冪等性、對帳🌱
02街口支付結構推估第三方支付、對銀行整合🌱
03Line Pay 結構推估跨境支付、匯率處理🌱
04Plaid / Open Banking銀行 API 整合🌱

C04 即時通訊

#案例分析重點stage
01Discord:Voice Gateway + GuildsElixir/Rust、大型公會廣播🌱
02WhatsApp Erlang 架構2 billion users、單機 million connections🌱
03Slack 架構演進Monolith → 拆分🌱
04Signal E2EE 協議Double Ratchet、Sealed Sender🌱

C05 搜尋 / 地圖 / 派單

#案例分析重點stage
01Google Search索引、排名、Crawler🌱
02Uber Dispatch 派單H3 地理索引、實時配對🌱
03Google Maps 路徑規劃圖演算法、Contraction Hierarchies🌱
04DoorDash 訂單分派餐廳、外送員、客戶三方協調🌱

C06 電商

#案例分析重點stage
01Amazon Retail ArchitectureService-oriented、每個團隊一個服務🌱
02Shopee 搶購(雙 11)熱點處理、限流🌱
03PChome 24h 物流整合即時庫存、出貨🌱
04Shopify Multi-tenantSaaS 多租戶、效能隔離🌱

C07 基礎建設 / OSS

拆解 open source 原始碼。

#案例分析重點連結stage
01PostgreSQL MVCC多版本並發控制Database🌱
02Redis Data StructuresSDS、Dict、Ziplist、Skiplistredis-data-structures🌿
03Kafka Log Architectureappend-only log、partition🌱
04Kubernetes Control PlaneAPI Server、etcd、ControllerK8s🌿
05Git InternalsTree、Commit、DAGGit🌿
06Elasticsearch Inverted Index倒排索引、分片ES🌿
07Nginx Event Loopepoll、master-worker🌱
08SQLite 單檔資料庫為什麼全世界最多 DB🌱

C08 AI / ML 系統

#案例分析重點stage
01OpenAI ChatGPT Architecture 推估大規模 inference、quotas🌱
02GitHub CopilotIDE 整合、latency 控制🌱
03Perplexity:AI SearchRetrieval + Generation🌱
04Anthropic Claude:agent 架構Tool use、Context management🌱

C09 台灣在地系統(需公開資料夠多才寫)

#案例來源要求stage
01酷澎 / KKday / Pinkoi 公開技術分享需有 talks / blog🌱
0291APP / Shopline / CYBERBIZ需有 tech blog🌱
03玉山銀行 / 中信金 數位轉型需有 conf 分享🌱

寫作流程

每篇 case-study 應該:

  1. 資料來源全部標註(tech blog 連結、paper DOI、talk 影片)
  2. 區分「確認」vs「推估」:不要把推測寫成事實
  3. 圖勝於文:架構圖、資料流圖
  4. 重點是「為什麼這樣設計」:不只 what,要 why
  5. 結尾取捨:這個系統選了什麼 tradeoff、犧牲了什麼

模板:

# 背景:為什麼這個系統值得拆
# 規模:處理多大流量、多少資料
# 架構圖
# 關鍵設計決策(逐個拆解)
# Tradeoff:選了什麼、犧牲了什麼
# 我們能學到什麼
# 資料來源(reference 全部)

進度統計

  • 主題群:9(C01~C09)
  • 總案例:約 35
  • 🌿 growing:3(K8s、Git、Elasticsearch 已有基礎可延伸)
  • 🌱 seed:32
  • 🌳 mature:0

下一步

  1. 先做 C07 基礎建設/OSS:有原始碼可查,事實性強,寫作最穩
  2. 再做 C01/C04 社群/即時通訊:話題性高、公開資料多
  3. C09 台灣在地:等公開資料累積

此資料夾下有 1 條筆記。