OSS探訪GitHubでログイン

障害や再起動を越えて処理を続けるワークフローを実行・記録する耐久実行基盤

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
23,476
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

Temporalは、アプリの処理手順をWorkflowとして記録し、途中の障害や再起動があっても再試行と再開を管理する耐久実行基盤です。注文処理や長時間の業務手順を、状態機械を自作せずにコードとして表せます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

何を実現できるか

Temporal ServerはWorkflowの履歴とタスクを管理し、WorkerがWorkflowとActivityのコードを実行します。公式SDKの試験環境なら、サーバーなしで時間を進め、戻り値や失敗経路を確かめられます。

出典:[1][2][3][7]

向いている用途

どの場面に合うか

数分から数か月にわたる処理、外部サービスの一時障害、再試行や補償処理を追跡したい業務に向きます。固定例ではGo SDKの試験環境で待機後に挨拶を返すWorkflowを実行します。

出典:[1][2]

導入前の確認

導入前に確認する点

このリポジトリはTemporal Server本体で、Workflow実装には対応SDKが別途必要です。本番運用では永続化、可用性、暗号化、監視を設計します。GitHubとv1.32.0 LICENSEはMITです。 このガイドで固定したGo SDK 1.49.0はGo 1.26以上を要求します。

出典:[3][4][5][6]

参考にした公式資料

  1. [1]temporalio/temporal README at v1.32.0(2026-10-05)
  2. [2]Temporal official documentation(2026-10-05)
  3. [3]Temporal fixed version source(2026-10-05)
  4. [4]temporalio/temporal LICENSE at v1.32.0(2026-10-05)
  5. [5]temporalio/temporal GitHub metadata(2026-10-05)
  6. [6]Temporal Go SDK v1.49.0 go.mod(2026-10-05)
  7. [7]Temporal Go SDK testsuite v1.49.0 API(2026-10-05)
編集部からの補足

再試行を含む長い業務処理を、観測できる実行履歴として残したい場合に適します。まずSDKの試験環境でWorkflowの決定的な処理と結果を確かめ、その後にローカル開発サーバーへ進むと評価しやすくなります。

3ステップで試す

  1. 1

    固定版のSDK試験環境を作る

    Go 1.26以上とGitが必要です。一時モジュールにTemporal Go SDK 1.49.0とtestify 1.10.0を固定します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/temporal-workflow.XXXXXX") && cd "$demo" && go mod init example.com/temporal-demo && go get go.temporal.io/sdk@v1.49.0 && go get github.com/stretchr/testify@v1.10.0
  2. 2

    待機を含むWorkflowを書く

    Workflow時間で1時間待ち、名前を含む挨拶を返すWorkflowと試験を書きます。

    printf '%s\n' 'package demo' 'import (' ' "fmt"' ' "testing"' ' "time"' ' "github.com/stretchr/testify/require"' ' "go.temporal.io/sdk/testsuite"' ' "go.temporal.io/sdk/workflow"' ')' 'func Greeting(ctx workflow.Context, name string) (string,error) {' ' _ = workflow.Sleep(ctx, time.Hour)' ' return fmt.Sprintf("Hello %s", name), nil' '}' 'func TestGreeting(t *testing.T) {' ' var suite testsuite.WorkflowTestSuite' ' env := suite.NewTestWorkflowEnvironment()' ' env.ExecuteWorkflow(Greeting, "Ada")' ' require.True(t, env.IsWorkflowCompleted())' ' require.NoError(t, env.GetWorkflowError())' ' var result string' ' require.NoError(t, env.GetWorkflowResult(&result))' ' require.Equal(t, "Hello Ada", result)' '}' > workflow_test.go
  3. 3

    サーバーなしで結果を検証する

    SDKの試験環境で仮想時間を進め、Workflow完了とHello Adaの結果を確認します。Temporal Serverや外部サービスは起動しません。

    go test -run TestGreeting -v
公式READMEで確認

成長

成長の推移 · 直近30日

23,476 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
130
Open PR
472

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • workflows
  • workflow-engine
  • workflow-automation
  • workflow-management
  • workflow-management-system
  • distributed-systems
  • golang
  • service-bus
  • service-fabric
  • microservices-architecture
  • microservice-framework
  • microservice-orchestration
Stars
23,476
Forks
1,973
Watchers
123
Open Issues
583
Contributors
293
所有者種別
Organization
主要言語
Go
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?