【发布时间】:2019-04-23 22:04:30
【问题描述】:
我有以下操作。我需要创建预订,在创建预订期间我需要协调几件事。通过第三方系统进行预订,然后发送电子邮件,最后确定报价等等......
我能否将这个逻辑封装在一个 CreateReservationCommand 中,或者我需要三个命令,然后用什么模式来编排命令执行?命令可以有执行状态吗?
我也觉得四人组意义上的指挥部不同于 CQRS 意义上的指挥部。我说的对吗?
更新:
在这里让我感到困惑的是,就 CQRS 而言,您可以拥有命令和事件,并假设第三方系统向我的系统发送消息 CREATE_RESERVATION 在 CQRS 的上下文中这不是命令吗?更像是一个完整的工作流程可能是 SAGA 模式?
【问题讨论】:
-
命令是一个事务——它要么完成要么失败。没有第三种状态。你所描述的对我来说就像传奇/流程管理器
-
你需要一个传奇。您可以阅读有关如何初始化 Saga 的答案:softwareengineering.stackexchange.com/questions/381727/…
标签: design-patterns architecture domain-driven-design cqrs command-pattern