在CQRS中的域事件处理程序内部创建命令

问题描述 投票:1回答:2

我想到了一个关于CQRS和DDD的简单方案,但我想不出正确的方法来实现它:

Order和Buyer是Ordering服务内部的两个聚合根。当用户签出购物篮时:

  1. 一个(集成事件)>在(购物篮)服务中引发。

  2. 订购服务中的处理程序被调用。
  3. 在此处理程序内部,创建并调度了CreateOrderCommand。
  4. 命令处理程序实例化一个“订单”。
  5. 结果是,出现一个

    domain event

  6. “ OrderStartedDomainEvent”。
  7. 在处理程序内部,必须应用与其他集合(例如买方)有关的副作用:实例化了买方(如果尚不存在)。
  8. 因此,在这种情况下,我想更改订单状态。更改订单状态需要命令。我应该在哪里发送此命令?从我到目前为止所读的内容来看,在

    domain event handler

中创建和分派命令是不合适的。此外,如果我需要在此处引发域名事件,该怎么办?由于没有调用Buyer构造函数(如果已经存在)。那么在

domain event handler

内引发domain事件是否正确?我进行了很多搜索,但是以前的答案对我来说是如此复杂。如果有人澄清,我将不胜感激。提前致谢。

我想到一个关于CQRS和DDD的简单方案,但我想不出正确的方法来实现它:Order和Buyer是Ordering服务内部的两个聚合根。当用户签出...

domain-driven-design cqrs domain-events
2个回答
0
投票
显示一些代码,这样我们就可以了解您真正想做的事情!!

无论如何,事件是关于系统中发生的事情的事实,这对于我们捕获它很重要,然后我们可以基于一系列事件重建系统的当前状态,


0
投票
根据我到目前为止所读的内容,在域事件处理程序中创建和分派命令是不合适的。
© www.soinside.com 2019 - 2024. All rights reserved.