mcpField
T
temporal-developer

temporal-developer

github.com/temporalio開発2751 回インストール3 週間前に更新
リポジトリ

temporal-developer について

temporal-developerは、Temporalアプリケーションを開発する人向けのスキルで、Python、TypeScript、Go、Java、.NET、Ruby、Rustのガイダンスを提供します。ワークフローの耐障害性、決定性、SDKのパターン、開発時のトラブルシューティングを扱い、運用やデプロイの範囲も区別します。

主な機能

  1. 01複数言語のSDK開発ガイド
  2. 02ワークフローの決定性と履歴リプレイの説明
  3. 03シグナル、クエリ、Sagaのパターン資料
  4. 04バージョニングとよくある問題のガイド
  5. 05スタンドアロンActivityとジョブキューのガイド
  6. 06Temporal CLIのワークフローコマンド資料

活用シーン

  1. 01TemporalワークフローとWorkerの構築
  2. 02リプレイや決定性に関する問題の調査
  3. 03バックグラウンドジョブへのStandalone Activityの利用
  4. 04実行中のワークフローの安全な変更

インストール

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

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

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

同梱ファイル

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

references/core/
ai-patterns.md
cli-workflow-commands.md
determinism.md
dev-management.md
error-reference.md
gotchas.md
install_cli.md
interactive-workflows.md
job-queue.md
patterns.md
priority-fairness.md
random-streams.md
standalone-activities.md
troubleshooting.md
versioning.md
references/dotnet/
advanced-features.md
data-handling.md
determinism-protection.md
determinism.md
dotnet.md
error-handling.md
gotchas.md
observability.md
patterns.md
priority-fairness.md
standalone-activities.md
testing.md
versioning.md
references/go/
advanced-features.md
data-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 は、履歴のリプレイによって耐久性を実現します。

  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 を投稿しないでください。

コメント