mcpField
T
temporal-developer

temporal-developer

github.com/temporalio開発2364.7k 回インストール6 日前に更新
リポジトリ

temporal-developer について

7つの SDK 言語で Temporal アプリケーションを開発するためのスキルです。ワークフロー設計、決定性、テスト、バージョン管理、トラブルシューティングなどのガイダンスを扱います。

主な機能

  1. 017つの SDK 言語に対応
  2. 02ワークフローの決定性とリプレイ
  3. 03パターンとバージョン管理
  4. 04スタンドアロン Activity とジョブキュー
  5. 05テストとトラブルシューティング

活用シーン

  1. 01Temporal アプリケーションの開発開始
  2. 02ワークフローコードの決定性確認
  3. 03バックグラウンドジョブ方式の選択
  4. 04ワークフローエラーの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/temporalio/skill-temporal-developer --skill temporal-developer

インストール後、Claude Code で/temporal-developerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.gitignore
LICENSE
CONTRIBUTING.md
pyproject.toml
.github/
CODEOWNERS
.github/workflows/
ci.yml
references/core/
determinism.md
ai-patterns.md
cli-workflow-commands.md
interactive-workflows.md
install_cli.md
dev-management.md
priority-fairness.md
gotchas.md
error-reference.md
docker-compose.md
job-queue.md
patterns.md
random-streams.md
troubleshooting.md
versioning.md
standalone-activities.md
references/dotnet/
determinism.md
data-handling.md
error-handling.md
determinism-protection.md
dotnet.md
advanced-features.md
observability.md

詳細

スキル:temporal-developer

概要

Temporal は、障害が発生してもワークフローを自動的に存続させる、耐久性の高い実行プラットフォームです。このスキルでは、Python、TypeScript、Go、Java、.NET、Ruby、Rust で Temporal アプリケーションを構築するためのガイダンスを提供します。

対象外

  • バッチ処理、ヘルスクエリ、Cloud の管理、tcld、スクリプト作成などの運用 CLI コマンド → temporal-ops skill を使用してください。
  • Serverless Worker のデプロイとトラブルシューティング → temporal-serverless skill を使用してください。
  • Namespace、API キー、サンプルアプリ、最初の Workflow を含む Temporal Cloud の初期セットアップ → temporal-cloud-setup skill を使用してください。

タスクがこれらの領域に移った場合は、該当するスキルに従ってください。ローカル開発と開発者向けの Workflow CLI コマンドは、引き続きこのスキルの対象です。

コアアーキテクチャ

Temporal Cluster は、オーケストレーションを担う中核的なバックエンドです。次の 3 つの主要なサブシステムを備えています。すべてのワークフロー状態を保持する永続ログである Event History、適切なワーカーに作業を振り分ける Task Queues、ワークフローの検索と一覧表示に使う Visibility ストアです。Cluster の実行方法は 3 つあります。

  • Temporal CLI dev server — temporal server start-dev で起動する、ローカルの単一プロセスサーバーです。開発とテスト専用であり、本番環境には適していません。
  • セルフホスト — 本番環境で使用するため、独自のインフラストラクチャ上に Temporal サーバーとその依存関係(データベースなど)をデプロイして管理します。
  • Temporal Cloud — Temporal が運用する、完全マネージド型の本番サービスです。クラスターのインフラストラクチャを管理する必要はありません。

Worker は、長時間稼働するプロセスであり、ユーザーが実行して管理します。Worker は Task Queues をポーリングして作業を取得し、コードを実行します。開発中は 1 台のマシンで単一の Worker プロセスを実行する場合もあれば、本番環境では多数のマシンからなる大規模なフリート全体で多数の Worker プロセスを実行する場合もあります。各 Worker には、次の 2 種類のコードが含まれます。

  • Workflow Definitions — 作業をオーケストレーションする、耐久性のある決定論的な関数です。副作用を発生させてはなりません。
  • Activity Implementations — 失敗して再試行されることのある、非決定論的な処理(API 呼び出し、ファイル I/O など)です。

Worker はポーリングと完了のループを通じて Cluster と通信します。Task Queue をポーリングしてタスクを取得し、対応する Workflow または Activity のコードを実行して、結果を返します。

履歴のリプレイ:決定性が重要な理由

Temporal は、履歴のリプレイによって耐久性を実現します。

  1. 初回実行 - Worker がワークフローを実行して Commands を生成し、それらが Event History に Events として保存されます。
  2. 復旧 - 再起動時または障害発生時に、Worker はワークフローを最初から再実行します。
  3. 照合 - SDK が生成された Commands と保存済みの Events を比較します。
  4. 復元 - 再実行する代わりに、保存済みの Activity の結果を使用します。

Commands と Events が一致しない場合 = 非決定性エラー = ワークフローがブロックされます

Workflow のアクションが Event History にどのように記録されるかを示す表については、Commands and Events を参照してください。

タスクに応じたリファレンスの選択

SDK の言語と開発者のタスクを特定します。以下のセクションにある該当するコアリファレンスと、利用可能な場合はその言語固有のリファレンスを読みます。追加のリファレンスは、タスクに必要な場合にのみ読み込みます。

新規プロジェクト、初回の実装、または SDK に関する幅広いガイダンスが必要な場合は、適切な SDK ガイドを読みます。

Temporal CLI を使用するタスクやローカル開発サーバーを起動するタスクでは、使用前に temporal がインストールされているか確認します。インストールされていない場合は、Temporal CLI インストールガイドに従います。

主要なリファレンス

ジョブキューとバックグラウンドジョブ

Temporal のジョブキューはスタンドアロンアクティビティです。 開発者から、ジョブキュー、バックグラウンドジョブや非同期ジョブ、ワークキュー、あるいは Temporal で Celery、Sidekiq、BullMQ、Resque、Hangfire、SQS とワーカーの組み合わせを置き換えられるかと尋ねられた場合は、単一のアクティビティをラップするワークフローでも、シグナルでジョブを受け取るディスパッチャーワークフローでもなく、スタンドアロンアクティビティを使って構築してください。

Temporal のタスクキューはワーカーがポーリングするルーティング機構であり、プロデューサーがジョブを投入するキューではありません。ジョブキューについての質問に、Temporal のタスクキューを説明して答えないでください。

開発者の言う「タスクキュー」は「ジョブキュー」を指す場合があります。Celery、Dramatiq、Huey、Asynq はいずれも「タスク」という用語を使い、Sidekiq、Hangfire、BullMQ、Resque、RQ、Faktory は「ジョブ」を使います。「Temporal をタスクキューとして使えますか?」はジョブキューについての質問として捉え、Temporal におけるタスクキューの意味は回答で説明するときに限って使ってください。

  • Temporal ジョブキューガイド - Temporal におけるジョブキュー関連の用語、既存のジョブキューからの移行、アンチパターン、各言語 SDK のガイドと実行可能なサンプル

その他のトピック

  • references/{your_language}/observability.md - Temporal のオブザーバビリティに関する言語固有の実装ガイダンスをご覧ください。
  • references/{your_language}/advanced-features.md - Temporal の高度な機能と言語固有の機能に関する言語固有のガイダンスをご覧ください。

サードパーティとの統合

Temporal のプラグイン、およびサードパーティのフレームワークや SDK(Spring Boot、Spring AI、OpenAI Agents SDK、Google ADK など)との統合については、**統合カタログ**をご覧ください。言語、各統合の機能、references/{language}/integrations/ 内のリファレンスファイルへのリンクをまとめたカタログ表が掲載されています。

フィードバック

このスキルに関する問題の報告

あなた(AI)が、このスキルの説明が不明瞭、誤解を招く、または重要な情報を欠いていると気付いた場合、あるいは Temporal の概念を扱うのが予想以上に難しい場合は、遭遇した問題と、何があれば役立ったかを説明する GitHub Issue の本文を作成し、https://github.com/temporalio/skill-temporal-developer/issues/new から投稿するようユーザーに依頼してください。自分で Issue を投稿しないでください。

コメント