案例研究練習題 (Practice - Case Studies)


Part 1:各案例 signature 自測

每案 1–2 題,直擊該案的 core_tradeoff / 招牌決策。先憑記憶答,再展開核對。

Q1(recall)13-Case-Studies/01-QR-Code-Generator 的 redirect 為什麼回 302 而不是 301?這個取捨犧牲了什麼、換來什麼?

Q2(application)13-Case-Studies/01-QR-Code-Generator 是 read-heavy(write:read ≈ 1:100)。它怎麼把唯一 token 算出來又不必每次查 DB,碰撞如何兜底?

Q3(recall)13-Case-Studies/02-Earthquake-Notification-System 做地震圈內裝置比對時,為什麼不在 alert 當下即時算每台裝置的 lat/long 距離?它改用什麼?

Q4(application)13-Case-Studies/03-Polymarket 的撮合引擎在「鏈上結算失敗」時為什麼絕不 rollback 已完成的 off-chain fill?這帶來什麼好處?

Q5(recall)13-Case-Studies/04-Amazon-Price-Tracking 為什麼不暴力爬遍 5 億頁,而是用 browser extension 群眾外包 + 優先式 crawler 的 hybrid?

Q6(application)13-Case-Studies/05-Tesla-Robotaxi-App 的配對狀態為什麼不放 stateless worker 記憶體,而是集中放 Redis?最終的「1 AV : 1 Ride」靠什麼兜底?

Q7(recall)13-Case-Studies/06-Spotify-Trending-Songs 為什麼用 OLAP + 批次(Spark)pipeline 而不是直接掃 OLTP?什麼時候該升級成 streaming?

Q8(recall)13-Case-Studies/07-Messenger 為什麼用 chat_id 而非 user_id 做分片單位?這放棄了什麼直覺、換到什麼?

Q9(recall)13-Case-Studies/08-Webhook-Platform 為什麼選 at-least-once 而不是 exactly-once?代價由誰承擔?

Q10(application)13-Case-Studies/09-Google-Docs 為什麼選中心化 OT 而不是 CRDT?這個選擇的延遲與一致性後果是什麼?

Q11(recall)13-Case-Studies/10-YouTube 的「影片 bytes 永不經過我們的 service」具體怎麼做?複雜度被推去哪?

Q12(recall)13-Case-Studies/11-ChatGPT-Tasks 為什麼把 watcher(查詢)與 worker(執行)用 queue 解耦、並接受 at-least-once?前提條件是什麼?

Q13(application)13-Case-Studies/12-Airbnb-Booking-Platform 為什麼用「邏輯可用性(reserved + expiration_time)」而不是對 inventory 上實體鎖?它犧牲了什麼乾淨性?

Q14(recall)13-Case-Studies/13-QA-Support-Agent 為什麼寧可主動拒答「轉接真人」,也不讓 LLM 用預訓練知識補答?這是什麼取捨?

Q15(recall)13-Case-Studies/14-LLM-Inference-API-Servicedual-trigger batching 是什麼?兩個 trigger 各管什麼?


Part 2:跨案例比較(cross-case,本次解鎖)

案例的價值在「同一道設計軸上不同案做了不同選擇」。以下全為 [analysis],答案直接點名具體案例。

Q16(analysis):read-heavy + unique-id 群——13-Case-Studies/01-QR-Code-Generator 的「算 ID + 唯一性靠 DB constraint 兜底 + cache/CDN 擋讀」這套,能不能原封不動套到 13-Case-Studies/04-Amazon-Price-Tracking?哪一招可直接搬、哪一招不行?

Q17(analysis):real-time 推送群——13-Case-Studies/07-Messenger13-Case-Studies/02-Earthquake-Notification-System13-Case-Studies/03-Polymarket13-Case-Studies/05-Tesla-Robotaxi-App 分別該用 SSE / WebSocket / push notification 哪一種?為什麼方向性需求決定了選擇?

Q18(analysis):誰需要 sharding、誰不需要,為什麼?對照 13-Case-Studies/01-QR-Code-Generator13-Case-Studies/07-Messenger13-Case-Studies/03-Polymarket13-Case-Studies/10-YouTube

Q19(analysis):contention / 一致性群——13-Case-Studies/03-Polymarket13-Case-Studies/12-Airbnb-Booking-Platform13-Case-Studies/05-Tesla-Robotaxi-App 各自用「樂觀 / 悲觀 / 分散式鎖 / 邏輯鎖」的哪一種來處理競爭?為什麼合適?

Q20(analysis):blob / CDN 群——13-Case-Studies/10-YouTube 的影片 bytes 與 13-Case-Studies/01-QR-Code-Generator 的 QR 圖像都是 static blob 走 CDN,但兩者的「上傳 / 分發」複雜度差在哪?

Q21(analysis):LLM 群——13-Case-Studies/11-ChatGPT-Tasks13-Case-Studies/13-QA-Support-Agent13-Case-Studies/14-LLM-Inference-API-Service 在「queue / batching / overload 保護」上各自的重點不同,怎麼分工?

Q22(analysis):reliable-delivery 群——13-Case-Studies/08-Webhook-Platform13-Case-Studies/07-Messenger 都要「不丟訊息」,但對「重複」與「順序」的容忍度不同,導致機制差在哪?