RECOVERY / 01
失敗也能恢復的工作流
用狀態、冪等、重試預算與補償,交付能驗證恢復的自動化流程
已能寫一個 API 或自動化腳本,希望處理重複事件、未知結果、長時間審批與中斷恢復的工程師、技術 PM 與自動化維運者。前1/10以內試閱 · 正式購買後閱讀365天 · 價格待定,付款暫未開放
18完整課文
09互動實驗
06模組動畫影片
01獨立專題
你會完成什麼
- 以故障矩陣區分未執行、已執行、未知結果,並指出可接受的外部狀態證據
- 設計含參數指紋、原子占用、租約與結果保存期限的冪等協定
- 計算含首次呼叫、重試上限、退避與總截止時間的呼叫預算
- 重播持久事件歷史,驗證重啟後不重複產生業務效果
- 為 Saga 定義補償、人工對帳與不可逆步驟的停止條件
- 以合成故障案例、獨立 ledger 檢查與操作交接表驗收流程
適合誰,以及先備知識
- 能閱讀 Python 或另一種程式語言、JSON 與基本測試
- 理解 HTTP 請求/回應及資料表主鍵
- 知道 transaction、程序重啟與並行請求的基本意義;可先走圖解線再讀程式
完整六模組課綱
MODULE 01
先知道失敗發生在哪裡
把成功敘述改成狀態證據,建立不變量、事件識別與故障矩陣。
- 逾時之後,先承認結果未知
- 先寫不變量,再畫狀態機
- 把事故拆成可觀察的故障矩陣
MODULE 02
讓重複請求只有一個業務意圖
定義冪等鍵、處理原子競態,拆解 outbox/inbox 的保證邊界。
- 冪等鍵要代表意圖,也要檢查參數
- 先查再做,為什麼仍然會重複
- Outbox 與 Inbox:原子提交後仍可能重送
MODULE 03
重試有成本,也必須有出口
按錯誤分類重試,推導退避、預算、截止時間與人工重送條件。
- 重試前先分類:拒絕、暫時失敗與未知
- 退避、抖動與重試預算要分開算
- 截止時間與熔斷之後,誰還在工作
MODULE 04
把進度留在程序之外
用事件歷史、檢查點與受控信號處理持久恢復和審批競態。
- 事件歷史與決定性:重播不等於重做副作用
- 檢查點與中斷恢復:最危險的是提交後
- 核准、取消與計時器的競態
MODULE 05
跨服務失敗後仍能對得起來
用 Saga、不可逆步驟排序與補償對帳維持可解釋的業務狀態。
- Saga 補償:讓業務可接受,不是假裝沒發生
- 不可逆步驟放哪裡:預留、確認與承諾點
- 補償也失敗:對帳與人工不是旁門
MODULE 06
變更、驗收與交接
保護舊歷史、注入關鍵故障,完成有復原證據的 capstone 與 runbook。
- 改版不能假設舊工作都已結束
- 故障注入與性質檢查:找出綠燈背後的假設
- 把流程交給下一個人:可恢復才算交付
學習與購買說明
如何試閱與購買?
登入Google可閱讀全文前1/10以內的連續圖文;價格待定,綠界付款暫未開放。正式開放購買後,以伺服器核實的付款與權限開始365天閱讀。
資料與動畫來自真實企業嗎?
案例、圖解與合成資料自行創作;互動動畫是可重跑的教學模型,附假設與數值紀錄。沒有宣稱為特定企業的成效或任一供應商benchmark。
有真人批改或認證嗎?
本課提供參考答案、可執行檢查及rubric;目前沒有承諾真人導師批改或專業資格認證。