Temporal
Temporal 耐受性執行平台
終結「超時」與「失敗」的焦慮:像寫單機程式一樣,開發複雜的分散式工作流
- 耐受性執行 (Durable Execution): Temporal 會記錄程式碼執行的每一個步驟。如果執行程式的伺服器突然爆炸,另一個 Worker 會接手並從上一個保存點「重播(Replay)」狀態,就像什麼都沒發生過一樣。
- 支援無限期的任務: 您可以讓一個 Workflow 執行一秒鐘,也可以讓它執行一年(例如:年費訂閱續約流程)。其間不需要擔心進程掛掉或記憶體溢位。
- 強大的重試與超時策略: 內建精密的重試機制。您可以定義複雜的退避算法(Exponential Backoff),無需在業務代碼中混入大量的
try-catch。
主要功能、特點
介紹: Temporal 是由 Uber 的 Cadence 團隊所創立。它透過「事件溯源(Event Sourcing)」技術,將 Workflow 的狀態保存在資料庫中。開發者只需專注於寫一般的程式碼(Go, Java, Python, TypeScript),其餘的一致性與可靠性由 Temporal Cluster 負責。
特色服務:
- 完全狀態透明: 透過 Web UI,您可以查閱任何一個正在執行或已完成的 Workflow 的完整歷史紀錄,甚至可以精確到每一行變數的變動。
- Activities 抽象層: 將不穩定的操作(如調用第三方 API)封裝在 Activities 中,Temporal 會自動處理這些操作的失敗與冪等性。
- 多語言 SDK 支援: 支援多種語言,且不同語言寫成的組件可以互相調用,非常適合多語言併存的微服務環境。
- 2026 AI 代理人持久化: 2026 年版本特別優化了「長週期 AI 對話(Long-running GenAI Session)」的存儲,讓 AI 代理人在跨越數天的推理與工具調用中,依然保有完整的上下文狀態。
核心可靠性對比
| 特性項目 | 傳統 MQ (Kafka/RabbitMQ) | 一般編排工具 (Airflow) | Temporal |
|---|---|---|---|
| 失敗處理 | 需手動處理重試/死信 | 重啟整個 Task | 精確到代碼行級的狀態恢復 |
| 狀態保存 | 需自行寫入 DB | 有限的狀態傳遞 | 原生支援 (Durable State) |
| 任務時長 | 短期 (分鐘級) | 中期 (小時級) | 無限期 (秒到年) |
| 可追蹤性 | 需寫 Trace 代碼 | 任務級日誌 | 完整的事件溯源歷史紀錄 |
| 開發體驗 | 異步、解耦但複雜 | 靜態圖 (DAG) | 直覺的指令式代碼 |
快速開發範例 (TypeScript)
定義一個自動轉帳的工作流,即使網路在中間斷掉,錢也絕對不會憑空消失:
import { proxyActivities } from '@temporalio/workflow';
import type * as activities from './activities';
const { withdraw, deposit } = proxyActivities<typeof activities>({
startToCloseTimeout: '1 minute',
retry: { initialInterval: '1s', maximumAttempts: 10 }
});
export async function transferWorkflow(from: string, to: string, amount: number): Promise<void> {
await withdraw(from, amount);
// 即使此處伺服器宕機,Temporal 重啟後也會記得下一步
await deposit(to, amount);
}
產品說明
Temporal 是現代分散式系統的「保險箱」。在 系統管理 與後端開發的版圖中,它解決了「網路與系統永遠不可靠」的本質痛點。它讓開發者能從繁瑣的故障復原邏輯中解脫,回歸到商業價值的創造。其核心價值在於「技術性的確定性」——它保證您的代碼只要寫下來,就一定會被執行完成。對於在 2026 年建構關鍵金融系統、大型雲端自動化或複雜 AI 代理系統的團隊來說,Temporal 是唯一的基礎設施選擇。


