mcpField
W
workflow-orchestration-patterns

workflow-orchestration-patterns

github.com/wshobson開発41.9k12.2k 回インストール2 週間前に更新
リポジトリ

workflow-orchestration-patterns について

workflow-orchestration-patternsは、分散システムの信頼性あるワークフロー設計を扱うTemporal向けガイドです。アーキテクチャの選択、耐障害性、ワークフローとアクティビティの設計、運用方法を解説します。

主な機能

  1. 01Temporalワークフローアーキテクチャの指針
  2. 02復旧と耐障害性のパターン
  3. 03ワークフローとアクティビティの設計手法
  4. 04よくある落とし穴と制約
  5. 05監視とスケーリングの考慮事項

活用シーン

  1. 01長時間実行される業務プロセスの設計
  2. 02複数段階の分散処理の復旧
  3. 03タイムアウトとエスカレーションを伴う承認フローの構築
  4. 04CI/CDやインフラのワークフロー設計

インストール

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

$npx skills add https://github.com/wshobson/agents --skill workflow-orchestration-patterns

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

同梱ファイルreferences/details.md

詳細

ワークフローオーケストレーションパターン

Temporal を使用したワークフローオーケストレーションアーキテクチャをマスターし、信頼性の高い分散システムを構築するための基本的な設計判断、レジリエンスパターン、ベストプラクティスを網羅します。

ワークフローオーケストレーションをいつ使用するか

理想的なユースケース (出典: docs.temporal.io)
  • マシン/サービス/データベースにまたがるマルチステッププロセス
  • オール・オア・ナッシングのセマンティクスを必要とする分散トランザクション
  • 自動的な状態永続化を伴う長時間実行ワークフロー(数時間から数年間)
  • 最後に成功したステップから再開する必要がある障害復旧
  • ビジネスプロセス: 予約、注文、キャンペーン、承認
  • エンティティライフサイクル管理: 在庫追跡、アカウント管理、カートワークフロー
  • インフラストラクチャ自動化: CI/CD パイプライン、プロビジョニング、デプロイメント
  • タイムアウトとエスカレーションを必要とする Human-in-the-loop システム
使用すべきでない場合
  • 単純な CRUD 操作(直接 API 呼び出しを使用)
  • 純粋なデータ処理パイプライン(Airflow、バッチ処理を使用)
  • ステートレスなリクエスト/レスポンス(標準 API を使用)
  • リアルタイムストリーミング(Kafka、イベントプロセッサを使用)

詳細なパターンと実例

詳細なパターンのドキュメントは references/details.md にあります。上記のナビゲーション階層では不十分な場合は、そのファイルをお読みください。

ベストプラクティス

ワークフロー設計
  1. ワークフローを集中的に保つ - ワークフローごとに単一の責任
  2. 小さなワークフロー - スケーラビリティのために子ワークフローを使用
  3. 明確な境界 - ワークフローがオーケストレーションし、アクティビティが実行する
  4. ローカルでテスト - タイムスキップテスト環境を使用
アクティビティ設計
  1. 冪等な操作 - 再試行しても安全
  2. 短命 - 数時間ではなく、数秒から数分
  3. タイムアウト設定 - 常にタイムアウトを設定する
  4. 長時間タスクのためのハートビート - 進捗を報告する
  5. エラー処理 - 再試行可能と再試行不可能を区別する
よくある落とし穴

ワークフロー違反:

  • workflow.now() の代わりに datetime.now() を使用する
  • ワークフローコード内でのスレッドまたは非同期操作
  • ワークフローから直接外部 API を呼び出す
  • ワークフロー内の非決定的なロジック

アクティビティの間違い:

  • 非冪等な操作(再試行を処理できない)
  • タイムアウトの欠如(アクティビティが永遠に実行される)
  • エラー分類なし(検証エラーを再試行する)
  • ペイロード制限の無視(引数ごとに 2MB)
運用上の考慮事項

モニタリング:

  • ワークフローの実行時間
  • アクティビティの失敗率
  • 再試行回数とバックオフ
  • 保留中のワークフロー数

スケーラビリティ:

  • ワーカーによる水平スケーリング
  • タスクキューのパーティショニング
  • 子ワークフローによる分解
  • 適切な場合のアクティビティのバッチ処理

追加リソース

公式ドキュメント:

  • Temporal コアコンセプト: docs.temporal.io/workflows
  • ワークフローパターン: docs.temporal.io/evaluate/use-cases-design-patterns
  • ベストプラクティス: docs.temporal.io/develop/best-practices
  • Saga パターン: temporal.io/blog/saga-pattern-made-easy

主要な原則:

  1. ワークフロー = オーケストレーション、アクティビティ = 外部呼び出し
  2. 決定性はワークフローにとって譲れない
  3. 冪等性はアクティビティにとって極めて重要
  4. 状態の保存は自動的
  5. 障害と復旧のために設計する

コメント