【发布时间】:2017-07-24 20:56:33
【问题描述】:
流程管理器是否使用相关 ID 或聚合特定标识来跟踪它正在管理的流程?
为了更清楚地举个例子,请看Saga on Sagas 上的图 2:
首先,进程管理器发送OrderConfirmed 事件是错误的,对吧?我(作为流程管理器)不能发送事件,只能发出命令。还是我错了?
其次,流程管理器如何关联来自不同聚合的 OrderCreated、SeatsReserved、PaymentReceived 事件?是每个聚合兑现(并复制)的相关 ID,还是特定的标识符(例如 SeatsReserved 有一个指向订单聚合的订单 ID)?
最后,如果是相关 id 的情况,谁创建它们?是客户端发出命令,例如PlaceOrder(order_id, correlation_id)?是接受PlaceOrder(order_id) 之类的命令然后发出OrderCreated(order_id, corr_id) 事件的聚合吗?或者,是流程经理(以某种方式)对此负责吗?或者,也许相关 ID 与此无关?
感谢您的帮助。
【问题讨论】:
标签: domain-driven-design cqrs event-sourcing