关于 cqrs-implementation
cqrs-implementation 是面向开发者的 CQRS 实施指南,介绍命令与查询分离的架构及关键组件,并提供最佳实践指引。详细模板和示例位于 references/details.md。
主要功能
- 01分离命令与查询模型
- 02说明命令、事件和查询组件
- 03介绍读模型投影
- 04涵盖事件版本管理
- 05提供详细模板与示例
适用场景
- 01独立扩展读写负载
- 02构建事件溯源系统
- 03优化复杂查询与报表
- 04设计不同的读写数据模型
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill cqrs-implementation安装后在 Claude Code 中输入/cqrs-implementation确认已加载。
附带文件references/details.md
详细介绍
CQRS 实现
实现 CQRS(命令查询职责分离)模式的全面指南。
何时使用此技能
- 分离读写关注点
- 独立于写入扩展读取
- 构建事件溯源系统
- 优化复杂查询场景
- 需要不同的读/写数据模型
- 高性能报告需求
核心概念
1. CQRS 架构
┌─────────────┐
│ Client │
└──────┬──────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Commands │ │ Queries │
│ API │ │ API │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Command │ │ Query │
│ Handlers │ │ Handlers │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Write │─────────►│ Read │
│ Model │ Events │ Model │
└─────────────┘ └─────────────┘
2. 关键组件
| 组件 | 职责 |
|---|---|
| 命令 | 更改状态的意图 |
| 命令处理器 | 验证并执行命令 |
| 事件 | 状态变更的记录 |
| 查询 | 数据请求 |
| 查询处理器 | 从读取模型检索数据 |
| 投影器 | 从事件更新读取模型 |
模板和详细工作示例
完整的模板库和详细工作示例位于 references/details.md。当您需要具体模板时,请阅读该文件。
最佳实践
应该做的
- 分离命令和查询模型 - 不同需求
- 使用最终一致性 - 接受传播延迟
- 在命令处理器中验证 - 在状态变更之前
- 反规范化读取模型 - 为查询优化
- 为事件添加版本 - 用于模式演变
不应该做的
- 不要在命令中查询 - 仅用于写入
- 不要耦合读/写模式 - 独立演变
- 不要过度设计 - 从简单开始
- 不要忽视一致性 SLA - 定义可接受的延迟
评论
支持 Markdown