关于 projection-patterns
此指南介绍事件溯源系统中的投影和读模型设计,面向实现 CQRS、物化视图及事件驱动查询模型的开发者,涵盖投影类型、幂等处理、检查点与重建。
主要功能
- 01投影架构模式
- 02实时、追赶、持久化和内联类型
- 03幂等与事务处理指南
- 04检查点和延迟监控
- 05读模型重建规划
适用场景
- 01构建 CQRS 读模型
- 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