イベントソーシングシステムでのクエリパフォーマンスに苦労していませんか?このスキルでは、イベントストリームから効率的なリードモデルとプロジェクションを構築するための実証済みのパターンを提供します。
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "projection-patterns". ユーザーが基本的なプロジェクタテンプレートを要求
النتيجة المتوقعة:
name()、handles()、apply() の抽象メソッドを持つ Python の Projection ベースクラスを提供。チェックポイント管理とバッチ処理を備えた Projector ランナーを含む。データベース操作のための async/await パターンを示す。
استخدام "projection-patterns". ユーザーが注文サマリープロジェクションを必要とする
النتيجة المتوقعة:
OrderCreated、OrderItemAdded、OrderShipped イベントを処理する OrderSummaryProjection クラスを提供。各ハンドラーが特定の列を更新。パラメータ化された SQL クエリとコネクションプーリングを実演。
استخدام "projection-patterns". ユーザーが破損したプロジェクションの再構築を希望
النتيجة المتوقعة:
再構築プロセスを説明:チェックポイントを削除し、オプションでリードモデルテーブルをクリアし、position 0 からプロジェクションを再実行。安全なリプレイのために冪等性の要件を強調。
التدقيق الأمني
آمنThis skill contains documentation and Python code examples for CQRS projection patterns. Static analyzer flagged markdown code blocks as shell commands (false positive). URLs are documentation references, not network calls. No executable code, cryptographic operations, or system access detected. Safe for publication.
درجة الجودة
ماذا يمكنك بناءه
E コマース注文プロジェクション
注文イベントを集約して、リアルタイムステータス更新を含む顧客向けサマリーを作成するリードモデルを構築します。
イベントからの検索インデックス
ドメインイベントと同期して商品カタログを更新し、全文検索を可能にする Elasticsearch プロジェクションを作成します。
分析ダッシュボードデータ
売上合計やユーザーアクティビティなどの日次メトリクスを計算する集約プロジェクションを実装します。
جرّب هذه الموجهات
注文イベントのリードモデルを構築する必要があります。OrderCreated と OrderUpdated イベントを処理し、チェックポイントを保存し、SQL テーブルを更新する基本的なプロジェクタの作成方法を示してください。
商品ドメインイベントを Elasticsearch と同期するプロジェクションを作成してください。ProductCreated、ProductUpdated、ProductDeleted イベントの処理と適切なエラーハンドリングを含めてください。
OrderCompleted イベントから日次売上メトリクスを計算する集約プロジェクションの構築方法を示してください。効率的な更新のための UPSERT ロジックを含めてください。
CustomerOrderPlaced イベントの処理時に複数のテーブルをアトミックに更新するプロジェクションが必要です。トランザクション処理とロールバックのパターンを示してください。
أفضل الممارسات
- プロジェクションを冪等にする - 副作用なしでイベントを複数回リプレイ可能にする
- 各イベント後にチェックポイントを保存し、障害後の再開を可能にする
- 一貫性を維持するためにマルチテーブル更新にはデータベーストランザクションを使用する
تجنب
- プロジェクションを相互に結合する - 各プロジェクションは独立して分離可能であるべき
- エラーハンドリングを省略する - 未処理の例外はプロジェクションを停止し、データの遅延を引き起こす
- イベントを順序通りに処理しない - 常に global_position の順序を尊重する