【问题标题】:CQRS - Consuming event serviceCQRS - 消费事件服务
【发布时间】:2019-02-12 12:53:50
【问题描述】:

我的问题是关于订阅 CQRS 中命令发布的事件的消费事件服务。

假设我有一个文档生成服务,它将根据某些事件生成一些文档,文档生成服务是否通过聚合根从域加载数据?如果是这样,文档生成服务不会加载可能在生成服务接收到的事件之后更新的数据吗?你将如何阻止这种情况发生?

我猜我是假设事件只会传递命令DTO接收到的信息而将整个域模型数据传递给事件感觉很不对。

【问题讨论】:

    标签: cqrs


    【解决方案1】:

    你真的应该从你的事件中构建你的读取模型,除非你认为你的文档是域的一部分(并且你会有一个 CreateDocumentX 命令)

    【讨论】:

    • 即使在这种情况下,您也应该从事件中构建读取模型,并在事件中存储对文档的引用。甚至可能将文档本身作为压缩 blob 存储在事件存储中。
    • “甚至可能将文档本身存储在事件存储中,作为压缩 blob。”说什么????那是完全错误的。将事件存储在应包含唯一标识符(文件名)的事件存储中,并将其存储在文件系统中。数据库应该只包含元数据,而不是 blob。
    【解决方案2】:

    我只能说,当您在 cqrs 中发言时,您应该更深入地描述问题以正确解决或提供帮助。

    但是,据我所知,您可以在写入端拥有持久存储,但请确保您不会超出聚合上下文。 Related issue reading-data-from-database-on-write-side-in-cqrs

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 2018-02-21
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2016-03-17
      • 1970-01-01
      相关资源
      最近更新 更多