temporal-developer について
temporal-developerは、Temporalアプリケーションを開発する人向けのスキルで、Python、TypeScript、Go、Java、.NET、Ruby、Rustのガイダンスを提供します。ワークフローの耐障害性、決定性、SDKのパターン、開発時のトラブルシューティングを扱い、運用やデプロイの範囲も区別します。
主な機能
- 01複数言語のSDK開発ガイド
- 02ワークフローの決定性と履歴リプレイの説明
- 03シグナル、クエリ、Sagaのパターン資料
- 04バージョニングとよくある問題のガイド
- 05スタンドアロンActivityとジョブキューのガイド
- 06Temporal CLIのワークフローコマンド資料
活用シーン
- 01TemporalワークフローとWorkerの構築
- 02リプレイや決定性に関する問題の調査
- 03バックグラウンドジョブへのStandalone Activityの利用
- 04実行中のワークフローの安全な変更
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ temporalio/ claude-temporal-plugin --skill temporal-developerインストール後、Claude Code で/temporal-developerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/core/ai-patterns.mdcli-workflow-commands.mddeterminism.mddev-management.mderror-reference.mdgotchas.mdinstall_cli.mdinteractive-workflows.mdjob-queue.mdpatterns.mdpriority-fairness.mdrandom-streams.mdstandalone-activities.mdtroubleshooting.mdversioning.mdreferences/dotnet/advanced-features.mddata-handling.mddeterminism-protection.mddeterminism.mddotnet.mderror-handling.mdgotchas.mdobservability.mdpatterns.mdpriority-fairness.mdstandalone-activities.mdtesting.mdversioning.mdreferences/go/advanced-features.mddata-handling.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 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 を投稿しないでください。