知识卡片

CQRS复杂度可繁可简由查询模型决定

普通读书笔记卡 · 1976.x

内容

CQRS复杂度可繁可简:命令端可选引入命令总线、事件溯源、事件总线逐层加复杂度,完整引入两条总线的CQRS最复杂,选择需评估成本收益比。但它最根本的改变是查询模型设计——这与核心子领域识别吻合:非核心子领域可选最简便方法;即便上下文属核心子领域,其查询逻辑因不牵涉太多领域规则、更强调快速取数,也可打破领域模型约束。此外总线不必是独立进程中间件,也可用Guava或AKKA的Event Bus本地实现。发散:CQRS给核心子领域开了口子——写侧严谨建模,读侧怎么快怎么来。

参考来源

- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.3.5(源文件:_epub-src/OEBPS/031.xhtml) - 结论依据:原文指出CQRS最根本改变是查询模型设计,与核心子领域识别吻合,且总线不必是独立进程中间件。 - 原始内容:但最根本的是它改变了查询模型的设计。这一设计思想其实与领域驱动设计核心子领域的识别相吻合……总线的职责就是发布、传递和订阅消息……不必一定使用消息队列。