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