mcpField
E
event-store-design

event-store-design

github.com/wshobsonデータ・データベース41.9k11.0k 回インストール2 週間前に更新
リポジトリ

event-store-design について

イベントソーシングアプリケーションのイベントストア設計ガイドです。設計や実装を担う開発者向けに、アーキテクチャ、技術選定、要件、実践方法を扱い、テンプレートと例の参照先も示します。

主な機能

  1. 01イベントストアの構成と要件
  2. 02ストレージ技術の比較
  3. 03バージョニングと冪等性の指針
  4. 04スキーマ設計と拡張の助言
  5. 05テンプレートと例の参照先

活用シーン

  1. 01イベントソーシング用ストレージの選定
  2. 02イベントストリームとスキーマの設計
  3. 03イベントの保存と取得の改善
  4. 04イベントストアの拡張計画

インストール

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

$npx skills add https://github.com/wshobson/agents --skill event-store-design

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

同梱ファイルreferences/details.md

詳細

イベントストアの設計

イベントソーシングアプリケーション向けのイベントストアを設計するための包括的なガイドです。

このスキルを使用する場面

  • イベントソーシング基盤の設計
  • イベントストア技術の選定
  • カスタムイベントストアの実装
  • イベントの保存と取得の最適化
  • イベントストアのスキーマの設定
  • イベントストアのスケーリングの計画

中核となる概念

1. イベントストアのアーキテクチャ
┌─────────────────────────────────────────────────────┐
│                    Event Store                       │
├─────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐ │
│  │   Stream 1   │  │   Stream 2   │  │   Stream 3   │ │
│  │ (Aggregate)  │  │ (Aggregate)  │  │ (Aggregate)  │ │
│  ├─────────────┤  ├─────────────┤  ├─────────────┤ │
│  │ Event 1     │  │ Event 1     │  │ Event 1     │ │
│  │ Event 2     │  │ Event 2     │  │ Event 2     │ │
│  │ Event 3     │  │ ...         │  │ Event 3     │ │
│  │ ...         │  │             │  │ Event 4     │ │
│  └─────────────┘  └─────────────┘  └─────────────┘ │
├─────────────────────────────────────────────────────┤
│  Global Position: 1 → 2 → 3 → 4 → 5 → 6 → ...     │
└─────────────────────────────────────────────────────┘
2. イベントストアの要件
要件説明
追記専用イベントは不変で、追記のみ可能
順序付けストリーム単位およびグローバルな順序付け
バージョン管理楽観的同時実行制御
サブスクリプションリアルタイムのイベント通知
冪等性重複した書き込みを安全に処理

技術の比較

技術最適な用途制限事項
EventStoreDB純粋なイベントソーシング単一目的
PostgreSQL既存の Postgres スタック手動での実装
Kafka高スループットのストリーミングストリーム単位のクエリには不向き
DynamoDBサーバーレス、AWS ネイティブクエリの制限
Marten.NET エコシステム.NET 固有

テンプレートと詳細な実例

テンプレートの完全なライブラリと詳細な実例は references/details.md にあります。具体的なテンプレートが必要な場合は、そのファイルをお読みください。

ベストプラクティス

推奨事項
  • 集約の種類を含むストリーム ID を使用する - Order-{uuid}
  • 相関 ID と因果 ID を含める - トレース用
  • 初日からイベントをバージョン管理する - スキーマの進化を計画する
  • 冪等性を実装する - 重複排除にイベント ID を使用する
  • 適切にインデックスを作成する - クエリパターンに合わせて
非推奨事項
  • イベントを更新または削除しない - それらは不変の事実です
  • 大きなペイロードを保存しない - イベントは小さく保ちましょう
  • 楽観的同時実行制御を省略しない - データの破損を防ぎます
  • バックプレッシャーを無視しない - 遅いコンシューマーを処理しましょう

コメント