這段旅程的起點,是為了拯救那個在事件洪流中疲於奔命、被排程與邏輯耍得團團轉的自己。
我也意識到,這並不是我個人的困境,而是隨著微服務逐步成熟,越來越多團隊開始面對的現實課題,微服務過分炒作的情況將會退去,軟體工程的重點會從「拆解」轉向「收斂」。
那個存在已久、但價值未被充分看見的流程引擎,正在重新找到它的位置,它將吸收原本散落在系統中的排程、事件協調、補償與狀態控制邏輯,成為系統的控制中樞,讓開發更簡單,系統更透明、更容易演進。
這三十篇文章,是以流程引擎為核心從零到一的開發指南:從觀念建立、常見陷阱,到開發模型與實作案例,一步步打通從理論到實作的脈絡。
介紹分散式系統的挑戰、Workflow Orchestration 概念、Temporal 基礎架構,並實作第一個完整的註冊流程。
探討微服務架構下常見的痛點:連線瞬斷、狀態持久化、冪等性、跨天期長流程等挑戰。
介紹 Orchestration vs Choreography 的差異,以及流程引擎的能力總覽與使用時機。
認識 Temporal 的起源、架構簡介、核心優勢與設計理念。
實作一個電商註冊流程,學習 Workflow 和 Activity 的定義與實作方式。
學習如何設置 Temporal Server、啟動 Worker 以及觸發 Workflow 執行。
深入探討分散式流程的理論基礎,包括 BASE Model、State Machine、Event History、Replay 機制、順序性與冪等性挑戰。
深入理解 BASE Model(基本可用、軟狀態、最終一致性)與狀態機設計。
探討 Event History 與 Replay 機制如何確保流程可靠性與可追溯性。
理解分散式環境下的順序性問題,以及如何透過 Workflow 保證執行順序。
學習冪等性設計,避免重試導致的重複執行問題。
學習如何設計健壯的分散式流程,涵蓋錯誤分類、Timeout Policy、Retry Policy 以及併發與限速策略。
學習錯誤分類法(暫時性、永久性、業務失敗、系統崩潰)與對應策略。
掌握 Activity Timeout 與 Workflow Timeout 的設計原則與實作方法。
深入 Retry Policy 設計,包括重試次數、退避策略與不可重試錯誤類型。
學習 Concurrency Control 與 Rate Control,保護 Worker 與下游服務。
掌握複雜流程的設計模式,包括 Saga Pattern、互動式流程、Message Passing、Entity Pattern、Child Workflow 等。
實作 Saga Pattern,處理跨服務的分散式交易與補償邏輯。
實作需要人工審核與超時處理的互動式流程。
詳解各種 Workflow 啟動方式的差異、適用情境與常見陷阱。
學習如何透過 Signal、Query、Update 與運行中的 Workflow 互動。
掌握 Workflow-as-Entity 模式,將每個實體建模為一個 Long Living Workflow。
學習何時使用 Child Workflow,以及如何結構化拆分複雜流程。
實作非同步 Activity Completion,釋放 Worker 資源處理長尾任務。
學習 Workflow 與 Activity 的取消機制,確保流程能優雅地中斷與清理。
學習如何安全地演進 Workflow 程式碼,以及如何全面測試 Temporal 應用。
掌握 Workflow.getVersion
API,安全地演進 Workflow 程式碼。
學習使用 TestWorkflowEnvironment 測試 Workflow 與 Activity。
測試 Workflow Versioning、Workflow.await、Heartbeat 與取消機制。
測試非同步 Activity Completion,並建立 E2E 測試環境。
探討 Workflow 與 AI Agent 的結合,實作一個具備記帳功能的 AI 對話平台。
探討 Workflow 與 AI Agent 的本質差異,以及為何需要結合兩者。
鳥瞰 AI 對話平台的整體架構與系統模組設計。
深入程式碼實作,逐行理解 Temporal 如何與 AI Agent 協作。
學習使用 Search Attributes 增強 Workflow 的查詢能力與系統可觀測性。
學習 Search Attributes 的基礎概念、資料類型與實作方式。
深入 Search Attributes 的設計決策、可觀測性策略與生產環境最佳實踐。
第一部分到第三部分,透過初步學習企業級流程引擎的過程,從中建構起處理分散式架構的基礎觀念,是我自己最喜歡的篇幅。
第四部分開始是深水區,要整合前述觀念以及 Temporal API,其中的 Day 14(Saga Pattern),Day 15(Interactive Process),Day 18(Entity Pattern)是幾個重要的流程實作模式。
公司 / 專案 | 應用場景 | 規模 / 數量級 | Temporal 負責的是哪一段 | 重點說明 / 來源 |
---|---|---|---|---|
Vinted | 支付、退款、訂單後台流程協調 | 📈 10–12 百萬 Workflows / Activities 每天 | 處理交易邏輯、失敗補償、後台支付流程 | Vinted Case Study – Temporal |
Unify | 自動化行銷/銷售 Playbook(節點流程) | 📊 數十萬個 Node executions 同時進行 | Orchestration DAG 流程、節點依序執行、狀態協調 | How Unify uses Temporal |
Dust | AI Agent 任務管理、推理流程編排 | ⚙️ 每天 1,000 萬+ Activities 執行 | AI 任務分派、狀態追蹤、錯誤重試 | Dust talk: Temporal at Scale |
Snap | 大規模事件流程處理(通知、使用者行為、後台協調) | 🌍 用戶日活 4.14 億(具體 Workflow 數未公開) | 關鍵任務編排、狀態管理、補償邏輯 | Snap Engineering Blog – Reliable Systems with Temporal |
嗨,這是 30 天鐵人賽的最後一篇(+1)。
感謝你一路陪我走過這段學習旅程,一起探索分散式流程的世界,認識了現代流程引擎 Temporal 的力量。
希望讀到這裡的你,也能在開發的路上少一點匆忙、多一點從容,讓系統與人生的流程都能游刃有餘地跑起來。