event-driven-architecture について
境界づけられたコンテキストやマイクロサービス間のイベント駆動連携を設計するスキルです。メッセージング、イベント契約、信頼性、調整パターン、安全な運用の判断を支援します。
主な機能
- 01メッセージング方式とブローカーの選定
- 02イベント種別とスキーマの設計
- 03順序と配信保証の計画
- 04冪等性とOutboxパターンの設計
- 05コレオグラフィー・オーケストレーション・Sagaの選択
- 06スキーマ管理と再処理運用の計画
活用シーン
- 01サービス間イベント連携の設計
- 02イベントスキーマの互換性ルール策定
- 03再試行と重複イベントの処理方法の指定
- 04デッドレターキュー再処理手順の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rade-nugroho/ agentic-enteprises-skill --skill event-driven-architectureインストール後、Claude Code で/event-driven-architectureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/event_driven_architecture_scope.mdevent_sourcing_and_cqrs.mdmessaging_patterns_and_brokers.mdorchestration_choreography_sagas.mdreliability_idempotency_outbox.mdschema_governance_operations.md詳細
イベント駆動アーキテクチャ
使用する場面
- 境界づけられたコンテキスト間またはマイクロサービス間のイベント駆動型連携を設計する
- パブリッシュ/サブスクライブとポイントツーポイント、トピックとキュー、ブローカーの機能を選択する
- ドメインイベント、統合イベント、コマンドとイベントの意味をモデル化する
- アーキテクチャレベルでイベントソーシングやCQRSを適用する(フレームワークのチュートリアルだけではない)
- スキーマ、互換性ルール、イベントスキーマのバージョニング戦略を定義する
- 順序、パーティションキー、配信保証(少なくとも1回など)を指定する
- 冪等性のあるコンシューマー、重複排除、厳密に1回のトレードオフを設計する
- 信頼性の高いパブリッシュ/コンシュームのために、トランザクショナルアウトボックスまたはインボックスを実装する
- パターンレベルで振り分けとオーケストレーション、サーガの補償を決定する
- デッドレターキュー、安全な再生、ストリームの再処理を運用する
- ストリーム処理(Kafka Streams、Flink)と個別のビジネスイベントを区別する
使用しない場面
- マイクロサービスのコード、gRPC/REST API、または12ファクターのデプロイ可能なアプリケーションのみを実装する場合 →
microservices-developer - エンタープライズ iPaaS ハブ、標準モデル、B2B パートナー API、または API ゲートウェイプログラムのみを設計する場合 →
enterprise-integration-api-developer - X12/EDIFACT セグメント、AS2/VAN、または EDI パートナー認定を扱う場合 →
edi-engineer - イベント/メッセージングアーキテクチャを伴わない汎用的なアプリケーション機能を構築する場合 →
senior-software-engineer - 機密扱いのエアギャップパイプライン、ATO 証跡、認可済みのプロモーションを運用する場合 →
classified-software-devsecops-engineer - VRP、MIP、スケジューリング、または最適化ソルバーを策定する場合 →
operations-research-algorithm-developer - CI/CD YAML、GitOps、リリース自動化のみを扱う場合 →
devops - ランディングゾーン、VPC、マネージドクラウドのプロビジョニングを行う場合 →
cloud-engineer
関連スキル
| ニーズ | スキル |
|---|---|
| サービス境界、gRPC/REST、サーキットブレーカー、コントラクトテスト | microservices-developer |
| エンタープライズ統合ハブ、OpenAPI/AsyncAPI、iPaaS、B2B ゲートウェイ | enterprise-integration-api-developer |
| EDI 標準とパートナーとのファイル交換 | edi-engineer |
| EDA に重点を置かないアプリケーションコードとリファクタリング | senior-software-engineer |
| 機密扱いの DevSecOps とアーティファクトのプロモーション | classified-software-devsecops-engineer |
| OR モデル、ルーティング、割り当てソルバー | operations-research-algorithm-developer |
| Kafka/Rabbit の運用プラットフォーム(ブローカー、K8s) | platform-engineer、devops |
| システム横断の ADR と NFR の承認 | senior-system-architecture |
| パイプラインセキュリティとサプライチェーン | devsecops |
主なワークフロー
1. スコープとイベント境界
イベントの種類、プロデューサー/コンシューマー、同期と非同期の境界、対象外事項を定義します。
references/event_driven_architecture_scope.mdを参照してください。
2. メッセージングとブローカー
パターン、トピック/キュー、パーティショニング、ブローカーの適合性(Kafka、Pulsar、SNS/SQS など)を選択します。
references/messaging_patterns_and_brokers.mdを参照してください。
3. イベントソーシングと CQRS
書き込みモデル、プロジェクション、スナップショット、読み取りモデルの一貫性をいつ使用するかを検討します。
references/event_sourcing_and_cqrs.mdを参照してください。
4. 信頼性、冪等性、アウトボックス
配信セマンティクス、重複排除、アウトボックス/インボックス、障害処理を扱います。
references/reliability_idempotency_outbox.mdを参照してください。
5. オーケストレーション、振り分け、サーガ
バスを分散モノリスに変えることなく、長時間実行されるフローを調整します。
references/orchestration_choreography_sagas.mdを参照してください。
6. スキーマガバナンスと運用
イベントのバージョン管理、DLQ の運用、イベントパイプラインの再生と可観測性を扱います。
references/schema_governance_operations.mdを参照してください。
出力
- イベントカタログ — イベント名、スキーマバージョン、プロデューサー、コンシューマー、SLA、PII 分類
- コンテキスト図 — サービス、トピック/キュー、同期フォールバック、信頼ゾーン
- 一貫性に関する注記 — 補償処理と冪等性キーを含む、アウトボックス/サーガ/コレオグラフィーの選択
- パーティショニングと順序付けの仕様 — キー、保証、ホットパーティションのリスク
- スキーマ互換性マトリックス — 後方/前方互換性ルール、非推奨化のタイムライン
- 運用ランブック — DLQ の排出、再生手順、遅延アラート、ポイズンメッセージの処理
原則
- 暗黙的な JSON ブロブよりも、明示的なコントラクト(スキーマ、AsyncAPI/CloudEvents メタデータ)を優先します
- コンシューマーはデフォルトで冪等に設計し、厳密に一度だけの処理は、範囲を限定して測定可能な目標として扱います
- コマンドとイベントを区別します。イベントは事実であり、コマンドは処理を要求します
- バス上での過剰に細かいオーケストレーションを避けます。サーガは補償処理を行うものであり、境界の欠如を隠すものではありません
- 障害を可視化します。相関 ID、構造化エラー、実行可能なペイロードを含む DLQ を用意します
- 再生はプロダクト機能です。再処理の前に、順序付け、副作用、重複排除を文書化します