temporal-developer について
7つの SDK 言語で Temporal アプリケーションを開発するためのスキルです。ワークフロー設計、決定性、テスト、バージョン管理、トラブルシューティングなどのガイダンスを扱います。
主な機能
- 017つの SDK 言語に対応
- 02ワークフローの決定性とリプレイ
- 03パターンとバージョン管理
- 04スタンドアロン Activity とジョブキュー
- 05テストとトラブルシューティング
活用シーン
- 01Temporal アプリケーションの開発開始
- 02ワークフローコードの決定性確認
- 03バックグラウンドジョブ方式の選択
- 04ワークフローエラーの調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ temporalio/ skill-temporal-developer --skill temporal-developerインストール後、Claude Code で/temporal-developerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.gitignoreLICENSECONTRIBUTING.mdpyproject.toml.github/CODEOWNERS.github/workflows/ci.ymlreferences/core/determinism.mdai-patterns.mdcli-workflow-commands.mdinteractive-workflows.mdinstall_cli.mddev-management.mdpriority-fairness.mdgotchas.mderror-reference.mddocker-compose.mdjob-queue.mdpatterns.mdrandom-streams.mdtroubleshooting.mdversioning.mdstandalone-activities.mdreferences/dotnet/determinism.mddata-handling.mderror-handling.mddeterminism-protection.mddotnet.mdadvanced-features.mdobservability.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 は、履歴のリプレイによって耐久性を実現します。
- 初回実行 - Worker がワークフローを実行して Commands を生成し、それらが Event History に Events として保存されます。
- 復旧 - 再起動時または障害発生時に、Worker はワークフローを最初から再実行します。
- 照合 - SDK が生成された Commands と保存済みの Events を比較します。
- 復元 - 再実行する代わりに、保存済みの Activity の結果を使用します。
Commands と Events が一致しない場合 = 非決定性エラー = ワークフローがブロックされます
Workflow のアクションが Event History にどのように記録されるかを示す表については、Commands and Events を参照してください。
タスクに応じたリファレンスの選択
SDK の言語と開発者のタスクを特定します。以下のセクションにある該当するコアリファレンスと、利用可能な場合はその言語固有のリファレンスを読みます。追加のリファレンスは、タスクに必要な場合にのみ読み込みます。
新規プロジェクト、初回の実装、または SDK に関する幅広いガイダンスが必要な場合は、適切な SDK ガイドを読みます。
- Python -> Python SDK ガイド
- TypeScript -> TypeScript SDK ガイド
- Go -> Go SDK ガイド
- Java -> Java SDK ガイド
- .NET (C#) -> .NET SDK ガイド
- Ruby -> Ruby SDK ガイド
- Rust -> Rust SDK ガイド(パブリックプレビュー中)
Temporal CLI を使用するタスクやローカル開発サーバーを起動するタスクでは、使用前に temporal がインストールされているか確認します。インストールされていない場合は、Temporal CLI インストールガイドに従います。
主要なリファレンス
- Temporal の決定性ルール - 決定性が重要な理由、リプレイの仕組み、アクティビティの基本概念
- 言語固有の情報は
references/{your_language}/determinism.mdを参照してください。
- 言語固有の情報は
- Temporal ワークフローの決定性保護 - SDK の保護機能、アナライザー、ランタイムチェック、およびその制限
- 言語固有の情報は
references/{your_language}/determinism-protection.mdを参照してください。
- 言語固有の情報は
- Temporal ワークフローのパターン - 概念的なパターン(シグナル、クエリ、サガ)
- 言語固有の情報は
references/{your_language}/patterns.mdを参照してください。
- 言語固有の情報は
- Temporal でよくある落とし穴 - アンチパターンとよくある間違い
- 言語固有の情報は
references/{your_language}/gotchas.mdを参照してください。
- 言語固有の情報は
- Temporal のバージョニングガイド - バージョニングの戦略と概念。ワークフローの実行中に、ワークフローコードを安全に変更する方法
- 言語固有の情報は
references/{your_language}/versioning.mdを参照してください。
- 言語固有の情報は
- Temporal スタンドアロンアクティビティガイド - スタンドアロンアクティビティ:ワークフローを使わず、クライアントからアクティビティを直接実行する方法 — Temporal のジョブキュー
- 言語固有の情報は
references/{your_language}/standalone-activities.mdを参照してください。
- 言語固有の情報は
- Temporal タスクキューの優先度と公平性ガイド - タスクキューの優先度と公平性に関する概念、設定、制限
- 言語固有の情報は
references/{your_language}/priority-fairness.mdを参照してください。
- 言語固有の情報は
- Temporal ワークフローのランダムストリームガイド - ワークフローコード、プラグイン、インターセプター向けに SDK が提供する、名前付きの決定論的ランダムストリーム
- 言語固有の情報は
references/{your_language}/random-streams.mdを参照してください(Go と TypeScript)。
- 言語固有の情報は
- Temporal トラブルシューティングガイド - 判断ツリー、復旧手順
- Temporal エラーリファレンス - よくあるエラーの種類、ワークフローのステータスリファレンス
- Temporal インタラクティブワークフローガイド - シグナル、アップデート、クエリのテスト
- Temporal 開発管理ガイド - 開発サイクルとサーバーおよびワーカーの管理
- Temporal Docker Compose ガイド - ローカルの Docker/Podman セットアップ。通常は CLI 開発サーバーを使用し、Compose を選ぶ前にサーバー管理の基準を確認してください。
- Temporal CLI ワークフローコマンドガイド - ワークフローを操作するための開発者向け CLI コマンド(開始、実行、シグナル送信、クエリ、アップデート、キャンセル)
- Temporal AI 統合パターン - AI/LLM パターンの概念
- 利用可能な場合は、
references/{your_language}/ai-patterns.mdにある言語固有の情報を参照してください。現在は Python のみです。
- 利用可能な場合は、
ジョブキューとバックグラウンドジョブ
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 を投稿しないでください。