cqrs - 在事件存储/CQRS 架构中,为什么存储事件而不是命令?

标签 cqrs event-sourcing

大概我们可以通过应用相同的命令集来恢复状态,那么为什么不简单地存储命令而不是事件呢?

最佳答案

事件,传达“这发生在我们的系统中”。当一个命令被接受和处理时,事件就会发生。没有人可以拒绝或改变它发生的事实。它是系统更改的唯一权威来源

命令只是系统的一部分(如 UI)告诉负责对系统进行更改的组件(“命令处理程序”)它想要做什么的一种方式。但是,命令处理程序可以出于各种原因选择不处理命令。 UI 可能包含陈旧信息并且处理命令没有商业意义,或者用户可能没有执行该操作的权限。无论哪种方式,该命令实际上只是一个请求,与系统状态无关

.

关于cqrs - 在事件存储/CQRS 架构中,为什么存储事件而不是命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656338/

相关文章:

sql-server - 从 SQL Server 生成事件

cqrs - 维护聚合之间的引用

c# - 在 EventSourcing 中,有关订阅的公认智慧是什么?

design-patterns - GOF 中的命令模式 vs CQRS 含义

domain-driven-design - 处理跨聚合关系中的事件和聚合状态

CQRS 读取模型端 - 规范化表

domain-driven-design - DDD\ES\CQRS 中应用程序的 CRUD 部分

java - 从外部服务发送命令时,聚合中的 axon 3.4 CommandHandler 不会被触发

cloud - 哪些云提供商产品支持通过事件订阅进行事件溯源?

c# - 事件采购资源