【问题标题】:CQRS/EventStore - Passing GUIDS to UI?CQRS/EventStore - 将 GUIDS 传递给 UI?
【发布时间】:2012-02-03 08:43:10
【问题描述】:

我目前正在使用 J Oliver 的 EventStore,据我所知,它使用 Guids 作为 Stream ID,这就是用来构建我的聚合根的。

从 CQRS 的角度和 DDD 的角度来看,我应该考虑域而不是 GUID。

所以,如果我做一个 GET(Mvc 客户端),我是否正确地说我的 URL 应该具有我的域对象(聚合根)的身份,并且我从读取存储中获取 GUID,然后使用从事件存储构建我的聚合根?

或者我应该将 GUID 传递给我的表单并将它们作为隐藏的表单变量传回吗?至少这样我就知道聚合根id,不用去查询读取存储了?

我想第一种方法是正确的方法(不在表单中使用 GUID),因为我所有的 Gets 和 POSTS 都处理域对象的身份,而不是客户端不知道的 GUIDS。

我想这也允许我构建基于 REST 的 API,它专注于资源及其身份,而不是系统生成的 GUIDS。如有错误请指正

【问题讨论】:

    标签: domain-driven-design cqrs neventstore


    【解决方案1】:

    在我看来,你在这里是正确的。 ui 应该完全依赖于读取模型,而不是真正关心聚合。然后,当您需要发送命令时,您可以使用读取模型来获取您感兴趣的聚合的 id。读取模型无论如何都应该非常快地读取(这就是使用不同模型进行读取和写入的全部原因),如果需要,很容易缓存。这也会为您提供更好的网址。

    【讨论】:

    • 感谢 Mattias,非常感谢您的回复。
    • 没问题,很高兴能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2012-02-26
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多