技能 projection-patterns
📦

projection-patterns

低風險 🌐 網路存取⚙️ 外部命令

實作 CQRS 投影模式

事件溯源系統需要高效的讀取模型以實現高性能查詢。本技能提供生產環境就緒的範本和模式,使用 Python 從事件串流建構投影、讀取模型和物化檢視。

支援: Claude Codex Code(CC)
📊 69 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「projection-patterns」。 Create a basic order summary projection

預期結果:

  • OrderCreated 事件處理常式:插入新的訂單摘要記錄,包含客戶資料
  • OrderItemAdded 事件處理常式:更新 total_amount 並遞增 item_count
  • OrderShipped 事件處理常式:將狀態設為已出貨並記錄 shipped_at 時間戳記
  • 檢查點追蹤:儲存每個處理事件後的 global_position
  • 冪等設計:可在系統重新啟動時安全地重新播放事件

正在使用「projection-patterns」。 Build a customer activity tracker projection

預期結果:

  • CustomerCreated 處理常式:插入客戶記錄並初始化活動摘要
  • OrderCompleted 處理常式:在摘要表中更新 total_orders 和 total_spent
  • OrderCompleted 處理常式:插入訂單歷史表以供稽核追蹤
  • ReviewSubmitted 處理常式:遞增評論數量並記錄最後評論日期
  • CustomerTierChanged 處理常式:更新等級和等級變更時間戳記

正在使用「projection-patterns」。 Implement a real-time sales dashboard projection

預期結果:

  • OrderCompleted 處理常式:使用新訂單總upsert每日銷售記錄
  • OrderRefunded 處理常式:減少收入並增加退款總額
  • 日期提取:解析完成日期以按天分組銷售
  • 原子更新:使用資料庫 ON CONFLICT 來防止競爭條件
  • 指標計算:追蹤每天的總訂單、收入、項目和退款

安全審計

低風險
v4 • 1/17/2026

This skill is documentation-only containing Python code templates for CQRS projection patterns. Static scanner flagged 42 patterns, but all are false positives triggered by documentation formatting and terminology. No executable code, network calls, or system modifications exist. The skill only provides architectural guidance via markdown templates.

2
已掃描檔案
664
分析行數
2
發現項
4
審計總數
審計者: claude 查看審計歷史 →

品質評分

38
架構
100
可維護性
87
內容
29
社群
90
安全
91
規範符合性

你能建構什麼

建構讀取模型

將事件串流轉換為優化的讀取模型以用於 CQRS 架構。

建立分析檢視

為儀表板和報告系統建構即時聚合檢視。

設計事件系統

為事件溯源微服務規劃和實作投影策略。

試試這些提示

基本投影
建立一個基本投影類別,處理來自事件串流的 OrderCreated 和 OrderCompleted 事件,並更新 PostgreSQL 讀取模型。
多表更新
撰寫一個投影,在 OrderCompleted 事件發生時,使用單一資料庫交易同時更新客戶摘要表和訂單歷史表。
搜尋索引同步
建立 Elasticsearch 投影,為全文搜尋建立產品事件索引,處理建立、更新和刪除操作。
每日指標
撰寫一個投影,按天聚合銷售資料,處理已完成訂單和退款,帶有 upsert 邏輯。

最佳實務

  • 讓投影具有冪等性,以便在故障或重新啟動後可以安全地重新播放事件
  • 當單一事件更新多個相關表時,使用資料庫交易
  • 儲存檢查點以從最後處理的事件位置恢復

避免

  • 將投影耦合在一起會造成串聯故障和嚴格的排序相依性
  • 跳過錯誤處理會導致靜默故障和讀取模型的資料不一致
  • 過度正規化讀取模型會透過增加連接複雜性來破壞投影的目的

常見問題

哪些資料庫可以與這些投影搭配使用?
範本使用 asyncpg 處理 PostgreSQL,但這些模式適用於任何非同步資料庫驅動程式,如 SQLAlchemy 或支援非同步的資料庫。
投影如何處理高容量事件?
實作具有可配置 batch_size 和檢查點的批次處理,以管理記憶體並啟用重新啟動能力。
我可以在 Kafka 中使用這些模式嗎?
可以,投影器模式可搭配任何事件來源使用。將 event_store.read_all() 呼叫替換為您的 Kafka 取用者邏輯。
我的資料使用這些投影安全嗎?
這些是架構範本。實際的資料安全性取決於您的資料庫權限、連線安全性和存取控制。
為什麼我的投影落後於事件串流?
檢查事件批次大小、資料庫查詢效能,並確保讀取模型表上對事件資料模式有適當的索引。
這與 ETL 管線有何不同?
投影按照事件發生的順序處理事件,維持狀態。ETL 通常在歷史資料上執行批次作業,而非即時更新。

開發者詳情

檔案結構

📄 SKILL.md