projection-patterns について
イベントソーシングシステムのプロジェクションと読み取りモデルの設計ガイドです。CQRS やマテリアライズドビューを実装する開発者向けに、方式の種類、冪等性、チェックポイント、再構築を扱います。
主な機能
- 01プロジェクションアーキテクチャのパターン
- 02ライブ、キャッチアップ、永続、インライン方式
- 03冪等性とトランザクションの指針
- 04チェックポイントと遅延の監視
- 05読み取りモデルの再構築計画
活用シーン
- 01CQRS 読み取りモデルの構築
- 02イベントからのマテリアライズドビュー作成
- 03イベントストリームからの検索インデックス生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill projection-patternsインストール後、Claude Code で/projection-patternsを入力して読み込まれたか確認します。
同梱ファイルreferences/details.md
詳細
プロジェクションパターン
イベントソーシングシステム向けのプロジェクションとリードモデルを構築するための包括的なガイドです。
このスキルを使用する場面
- CQRS のリードモデルを構築する
- イベントからマテリアライズドビューを作成する
- クエリのパフォーマンスを最適化する
- リアルタイムダッシュボードを実装する
- イベントから検索インデックスを構築する
- 複数のストリームにまたがるデータを集約する
中核となる概念
1. プロジェクションのアーキテクチャ
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Event Store │────►│ Projector │────►│ Read Model │
│ │ │ │ │ (Database) │
│ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │
│ │ Events │ │ │ │ Handler │ │ │ │ Tables │ │
│ └─────────┘ │ │ │ Logic │ │ │ │ Views │ │
│ │ │ └─────────┘ │ │ │ Cache │ │
└─────────────┘ └─────────────┘ └─────────────┘
2. プロジェクションの種類
| 種類 | 説明 | ユースケース |
|---|---|---|
| ライブ | サブスクリプションからのリアルタイム処理 | 現在の状態のクエリ |
| キャッチアップ | 過去のイベントを処理 | リードモデルの再構築 |
| 永続 | チェックポイントを保存 | 再起動後の再開 |
| インライン | 書き込みと同じトランザクション | 強整合性 |
テンプレートと詳細な実例
テンプレートライブラリの完全版と詳細な実例は references/details.md にあります。具体的なテンプレートが必要な場合は、そのファイルを参照してください。
ベストプラクティス
推奨事項
- プロジェクションを冪等にする - 安全に再生できます
- トランザクションを使用する - 複数テーブルの更新に
- チェックポイントを保存する - 障害後の再開に
- 遅延を監視する - プロジェクションの遅延に対してアラートを出す
- 再構築を計画する - 再構築を前提に設計する
非推奨事項
- プロジェクションを結合しない - それぞれが独立しています
- エラー処理を省略しない - 障害をログに記録してアラートを出す
- 順序を無視しない - イベントは順序どおりに処理する必要があります
- 過度に正規化しない - クエリパターンに合わせて非正規化する
コメント
Markdown 対応