OrderService: 是订单核心业务逻辑,其中,实现了下单流程。
CreateOrderSaga: 创建订单saga协调者,通过调用对应的Proxy(KitchenServiceProxy and OrderServiceProxy),发送命令消息给saga的参与者。
OrderCommandHandlers: 处理由OrderService发出的命令消息。
-
CreateOrderSaga
-
单例, 定义了创建订单saga的状态机,它调用CreateOrderSagaState的创建命令消息,并通过saga参与者的代理类(KitchenServiceProxy),发送这些消息给saga的参与者,
-
CreateOrderSagaState
创建订单saga的可持久化状态,它创建命令消息。
-
Saga participant proxy classes
如KitchenServiceProxy, 定于saga参与者的消息接口,接口由channel, 命令消息的类型,及h回复消息的类型。
代表saga实例的状态,主要作用是,创建saga参与者之间的消息
定义Kitchen Service的命令消息端点(CommandEndpoint),包括发送到哪个channel,回复的消息类型。
处理由OrderService发出的命令消息。
比如Order Service中,同时存在CreateOrderSaga和CancelOrderSaga, 假设他们存在同样类型的回复消息,我们怎么知道这个消息属于哪一个Saga?