CQRS / EventStore - 将GUID传递给UI?

时间:2012-02-03 08:43:10

标签: domain-driven-design cqrs event-store

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

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

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

或者我应该将GUID传递给我的表单并将其作为隐藏表单变量传回?至少这种方式我知道聚合根id,而不必查询读取存储?

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

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

JD

1 个答案:

答案 0 :(得分:1)

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