![]() |
1
10
首先,你真的需要事件源吗?我觉得很简单。活动采购既有优点也有缺点。虽然它为您提供了一个免费的审计跟踪,使您的域模型更具表现力,但它使解决方案复杂化。 好的,我假设在这一点上,您考虑了您的决定,并且您决定继续参与活动采购。我认为您缺少了将消息传递作为聚合之间通信方式的概念。最好用 Pat Helland's paper (顺便说一句,这不是关于DDD或事件源,而是关于可扩展性)。 其思想是聚合可以互相发送消息以强制某些行为。聚合之间不能有同步(即方法调用)交互,因为这会导致一致性问题。 在您的示例中,一个人ar将向预订ar发送预订消息。此消息将以某种异步和可靠的方式传输。预订AR将处理此消息,如果它已经被另一个人预订,它将以ReservationRejected消息回复。否则,它将发送已确认的预订。这些消息必须由ar人员处理。很可能,它们将生成另一个事件,该事件将转换为发送给客户的电子邮件或类似的事件。 不需要在模型中提取查询数据。只是信息。如果需要示例,可以下载的“消息”分支的源 Ncqrs 计划并查看scenariotest类。它演示了ARS之间的消息传递,使用BlueBook中的Cargo和HandlingEvent示例。 这能回答你的问题吗? |
![]() |
Naghi · 如何将ssh隧道远程添加到现有的repo? 1 年前 |
|
dc2023 · 有没有办法在特定的分支上进行git镜像克隆? 2 年前 |
![]() |
Veotani · 如何注册通用存储库的依赖关系? 7 年前 |
![]() |
topcool · Asp核心,对象引用未设置为存储库模式中对象的实例 7 年前 |