event-driven-architect について
event-driven-architect は、イベント駆動システムの設計に取り組むアーキテクトや開発者向けのスキルです。ブローカー選定、イベントソーシング、CQRS、AsyncAPI の文書化を扱います。
主な機能
- 01イベント駆動システム設計
- 02メッセージブローカー選定
- 03イベントソーシング実装
- 04CQRS パターンの指針
- 05AsyncAPI 仕様の設計
- 06CloudEvents スキーマの指針
活用シーン
- 01非同期マイクロサービスの設計
- 02ブローカーとキュー構成の選定
- 03イベントソーシングアプリの構築
- 04AsyncAPI によるパブリッシュ/サブスクライブの文書化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill event-driven-architectインストール後、Claude Code で/event-driven-architectを入力して読み込まれたか確認します。
詳細
イベント駆動アーキテクト
目的
イベント駆動アーキテクチャの設計と実装に関する専門知識を提供します。スケーラブルで疎結合なシステムを構築するための、メッセージブローカー、イベントソーシング、CQRS、CloudEvents や AsyncAPI などの標準規格を扱います。
使用する場面
- イベント駆動アーキテクチャを設計する
- メッセージキューとブローカーを実装する
- イベントソーシングシステムを構築する
- CQRS パターンを実装する
- AsyncAPI 仕様を作成する
- イベントメッシュのトポロジーを設計する
- 非同期マイクロサービスを構築する
クイックスタート
次の場合にこのスキルを呼び出します:
- イベント駆動アーキテクチャを設計する
- メッセージキューとブローカーを実装する
- イベントソーシングシステムを構築する
- CQRS パターンを実装する
- AsyncAPI 仕様を作成する
次の場合は呼び出さないでください:
- 同期 REST API を構築する場合(api-designer を使用)
- Kafka インフラストラクチャをセットアップする場合(data-engineer を使用)
- ワークフローオーケストレーションを構築する場合(workflow-orchestrator を使用)
- GraphQL API を設計する場合(graphql-architect を使用)
意思決定フレームワーク
Message Broker Selection:
├── High throughput, streaming → Kafka
├── Flexible routing → RabbitMQ
├── Cloud-native, serverless → EventBridge, Pub/Sub
├── Simple queuing → SQS, Redis Streams
└── Enterprise integration → Azure Service Bus
Pattern Selection:
├── Audit/replay needed → Event Sourcing
├── Read/write separation → CQRS
├── Simple async → Pub/Sub
├── Guaranteed delivery → Transactional outbox
└── Complex routing → Message router
主なワークフロー
1. イベント駆動システムの設計
- ドメインイベントを特定する
- イベントスキーマを定義する(CloudEvents)
- メッセージブローカーを選択する
- トピック/キューの構成を設計する
- コンシューマーグループを定義する
- デッドレター処理を計画する
- AsyncAPI でドキュメントを作成する
2. イベントソーシングの実装
- 集約の境界を定義する
- イベントの種類を設計する
- イベントストアを実装する
- プロジェクションハンドラーを構築する
- 読み取りモデルを作成する
- スキーマの進化に対応する
- スナップショット戦略を計画する
3. AsyncAPI 仕様
- サーバーとプロトコルを定義する
- チャネル(トピック/キュー)を記述する
- メッセージスキーマを定義する
- オペレーション(パブリッシュ/サブスクライブ)を文書化する
- セキュリティスキームを追加する
- ドキュメントを生成する
- コード生成を有効にする
ベストプラクティス
- 相互運用性のために CloudEvents 形式を使用する
- 冪等性のあるコンシューマーを設計する
- デッドレターキューを実装する
- イベントスキーマを慎重にバージョン管理する
- コンシューマーのラグを監視する
- 少なくとも 1 回の配信を前提に計画する
アンチパターン
| アンチパターン | 問題 | 正しいアプローチ |
|---|---|---|
| 非同期処理を同期的に行う | 目的を損なう | 適切なパターンを使用する |
| 冪等性がない | 重複処理が発生する | 冪等性のあるハンドラーを設計する |
| 順序を無視する | データの整合性に問題が生じる | 必要に応じてキーでパーティション分割する |
| イベントが巨大 | ネットワークのオーバーヘッドが増える | 小さなイベントを使い、詳細は取得する |
| スキーマの進化に対応しない | 破壊的変更が生じる | バージョニング戦略を策定する |
コメント
Markdown 対応