隨著微服務架構的普及,跨服務協作、長流程執行、失敗補償與重試機制成為後端開發的常見挑戰,也讓系統維運成本不斷攀升。
本系列將介紹流程引擎 Temporal ,包括 Workflow、Activity、Retry、Signal 等核心概念,以 Workflow as Code 的開發理念為基礎,透過簡易範例與說明,協助讀者理解並掌握跨服務長流程的設計與執行方式。
本文適合對微服務治理、流程穩定性、或有意導入 Temporal 的後端工程師與架構師閱讀。
緣起 我在實作微服務流程(例如付款→送餐的兩步驟)時,總是反覆碰到相同類型的問題,歸納如下: 現實挑戰 連線瞬斷、暫時性錯誤 下游拋錯(例:信用卡過期)...
Orchestration vs Choreography 差異 首先介紹這兩個名詞,在中文常都被翻譯成「編排」,但實際內涵不同: Orchestration...
Temporal 的起源 Temporal 的起源可以追溯到 2004 年,當時兩位創辦人在 AWS 共同參與了 SQS message queue 的基礎建...
流程介紹 首先介紹我們第一個要撰寫的例子,以常見的電商註冊流程,有三個步驟: 建立帳號 給 user 加500點 寄出歡迎信 流程非常簡單,全部走完就結...
Setup Temporal 首先安裝 Temporal Server,等一下建立的 Worker 及 Start Trigger 將藉由此核心流程引擎進行運作...
BASE Model 在單機系統中,做到強一致性相對容易:當 transaction commit 時,系統能確保「要嘛全部成功,要嘛全部失敗」,不會出現一半成...
State Persistence = Event History 僅有狀態機概念還不夠,流程必須能被「保存與還原」。Temporal 為每個 Workflo...
分散式流程不是線性世界 在單機程式裡,我們習慣「一步步執行」。 在分散式系統裡,A、B、C 三個服務的呼叫雖然在語意上表現為先後順序,但在實際執行層面上,則透...
Retry / At-Least-Once 依照現有的範例,註冊流程通常會拆分成多個服務: 建立帳號 送點數 500 點 寄出歡迎信 這個看似簡單的流程,在...
在分散式系統中,網路的不確定性、第三方服務的不可預測、跨服務間的資源競爭,都讓錯誤更頻繁、更難排查;在編排架構下,以分類並結構化的方式處理錯誤,讓開發者專注於業...