architecture - CQRS意图命令事件

标签 architecture cqrs

我正在创建一个 Web CRUD 应用程序,该应用程序在处理内部逻辑后,会将事件发布到其他系统以更新其数据。

我正处于实现 CQRS 的第一步,我必须在只有一个“保存”按钮的表单中为用户的所有可能意图创建特定命令,这听起来很奇怪。这意味着有很多命令(针对每个属性或值对象)来捕捉意图 我的要求中不需要 但在即将订阅它的项目中需要。我喜欢只做我的有界上下文要求的事情。

另一件需要考虑的事情:
我必须使用 session 来比较数据是否已更改。保存后伪造数据将隐藏在 UI 中显示错误数据的并发情况。

编辑:我刚找到 this thread Greg Young 建议某些屏幕只是 CRUD,将更新作为默认行为并没有什么不好。

最佳答案

为什么要使用 CQRS? 它并不适用于所有情况。

具体来说,如果您正在使用 CRUD,那么可能根本没有理由尝试 CQRS。它只是不适合。 CQRS 从设计中受益很多,当用户的意图在 UI 端被显式捕获并以有意义的命令(不是 FieldNameUpdated,而是 CustomerRelocatedToNewAddress 或 CustomerAddressCorrected)传递给服务器时。这需要在设计中使用领域驱动设计方法)。

关于architecture - CQRS意图命令事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4229367/

相关文章:

java - 如何使用事件源(axon 框架)处理传奇中从 REST-API 传递的多个实体?

asp.net - 需要有关大型 ASP.NET 应用程序的帮助

java - 将 Java 中的购物篮存储为数据库中的 Blob ......或者不是?

c# - CQRS与提交数据时的冲突

domain-driven-design - 将遗留数据库迁移到 cqrs/事件源 View

ios - iOS 的 CQRS 实现

ios - 我应该如何构建应用程序以使用 JSON 作为媒介将数据从服务器发送到 iPhone?

mysql - 是否应该避免向更大的 MySQL 表中添加另一个字段?

c# - 在基类和派生类中初始化基类属性

c# - CQRS 实现中每个 HTTP 请求的多个命令