Skip to content

Temporal

Temporal 耐受性執行平台

軟體分類 系統管理 / 分散式系統架構
開發廠商 Temporal Technologies
Stars
18.8k
Forks
1.4k
License
MIT
Version
vv1.26.x
Update
2026-03-12
OS
kubernetes

終結「超時」與「失敗」的焦慮:像寫單機程式一樣,開發複雜的分散式工作流

  • 耐受性執行 (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 是唯一的基礎設施選擇。