Agent Skills
返回列表
💻

CQRS 实现指南

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cqrs-implementation。

技能介绍

什么时候该上 CQRS

业务里读和写的比例、模型形状往往不一样:列表页要宽表聚合,写侧要保护不变量;报表要扫大量历史,交易路径又要低延迟。若仍共用一套 CRUD 模型,查询要么拖慢写入,要么为了读性能把领域模型拆得面目全非。CQRS(命令查询职责分离)把写模型(命令)和读模型(查询)拆开,中间用投影或事件流同步,让你可以分别优化扩展路径。

技能在帮你做什么

本技能是一份落地 CQRS 的检查清单与模式说明,而不是替你在框架里写代码:

  • 先对齐约束:识别读写工作负载、一致性是强即时还是最终一致,以及能否维护独立的读库/读表。
  • 划清边界:为命令定义变更意图与不变量,为查询定义只读视图与索引策略,避免「查询里偷偷改状态」。
  • 读侧投影:设计读模型如何从写侧或事件日志更新(同步、异步、重放),并考虑 lag 与重建。
  • 验证与运维:压测读写路径、演练故障(投影停更、重复投递、部分失败)与恢复流程。

需要更细的模板与模式时,按 SKILL 指向打开 resources/implementation-playbook.md。

适用边界

领域简单、CRUD 已够用,或组织上无法操作独立读写存储、又要求处处强即时一致时,不要硬上 CQRS——同步与运维成本会盖过收益。

使用场景

  • 交易写路径与宽表报表读模型冲突,需要拆命令侧与查询侧并设计投影同步
  • 计划引入事件日志做审计与重放,同时要维护可独立扩展的只读查询视图
  • 读流量远大于写且查询形态多样,希望在不动写模型不变量的前提下单独优化读库
  • 上线前需压测投影滞后、重复消费与读模型重建,并写清故障恢复步骤

适合人员

  • 负责订单/账务等写多读少模块的后端,正在评估是否把列表与报表从同一 CRUD 接口里拆出去
  • 主导微服务或模块化重构的架构师,需要为「最终一致读侧」和「强一致写侧」划定边界与同步策略
  • 落地事件溯源的团队工程师,要定义命令处理器、读模型投影与全量重放的操作手册
  • 复杂筛选与聚合报表拖慢主库的团队负责人,希望用独立读模型承载查询而不牺牲写路径规则