【发布时间】:2017-09-06 09:56:34
【问题描述】:
我正在使用 DDD 设计一个 CQRS 应用程序,并且想知道如何实现以下场景:
- 一个
Participant聚合可以被多个ParticipantEntry聚合引用 - 一个
AddParticipantInfoCommand被发送到命令端,其中包含Participant和一个ParticipantEntry的所有信息(类似于Order和一个OrderLineItem)
应该在哪里实现检查 Participant 是否已存在以及如果不存在则创建 Participant 的逻辑?
- 是否应该在 Saga 中完成,首先检查域模型是否存在
Participant,如果找不到,则发出AddParticipantCommand,然后发出AddParticipantEntry命令,其中包含 @987654331 @? - 这是否应该完全由域模型本身中的聚合根来完成?
【问题讨论】:
-
“一个 Participant 聚合可以与多个 ParticipantEntry 聚合相关联” - 什么意思?
-
它们是如何关联的?凭身份证?什么代表这个“关联”?
-
如果在
short时间段内添加重复参与者会怎样?对企业有什么影响?人工重试或取消命令是否可以接受? -
一个 Participant 可以被多个 ParticipantEntry 聚合引用(就像一个 Order 有多个 OrderItems)。我编辑了帖子。
-
您能告诉我更多有关该域的信息吗?
ParticipantEntry和Participant在域业务方面似乎没有关联。
标签: domain-driven-design cqrs nservicebus-sagas