Cascading failure 的核心概念是「局部故障沿著依賴關係擴散成更大範圍故障」。常見擴散路徑包括 timeout 太長、重試太多、connection pool 耗盡、queue 堆積、thread pool 被占滿與 fallback 過載。 可先對照 Certificate Chain and Trust Root。

概念位置

Cascading failure 是可靠性設計的主要防護目標。Timeout、backpressure、rate limit、circuit breaker、bulkhead 與 load shedding 都是在切斷擴散路徑。跟 Correlated Failure 的差別:cascading 是「一個壞了逐級傳導放大」(有先後),correlated 是「共享觸發器讓多個同時壞」(無先後)。故障在觸發消失後仍延續的那一種是 Metastable Failure;它的持續效應也會擴散到沒碰到觸發的元件,所以兩者可以同時發生。範圍從一個實例擴大到上游的過程,見 9.16 負載超過容量時服務的表現〈影響範圍:從單一 key 到依賴與上游〉。

可觀察訊號與例子

系統需要防 cascading failure 的訊號是原始故障在一個服務,症狀卻出現在多個上游。資料庫變慢後,API worker 卡住、queue lag 上升、retry 增加,最後登入與 checkout 都變慢。

設計責任

防護要從依賴圖出發,為每個下游設定 timeout、pool limit、重試預算與降級策略。Incident 後應檢查故障是如何跨服務擴散,而不只修復第一個壞掉的元件。