Order
Order Aggregate.
为了防止命令处理函数不小心修改聚合状态,可拆分成聚合状态类存放聚合状态.
me.ahoo.wow.api.annotation.AggregateRoot 注解是可选的标记.
Author
ahoo wang
See also
Functions
Link copied to clipboard
***** 重要:命令处理函数不直接修改聚合状态,而是通过执行完业务验证逻辑后返回领域事件来由聚合朔源事件修改聚合状态,并且发布到事件总线 *****.
订单服务 订阅 支付服务 发布的集成事件 PaymentOrderPaid
,适配成 订单服务 限界上下文 PayOrder
命令.
fun onCommand(command: CommandMessage<CreateOrder>, @Name(value = "createOrderSpec") specification: CreateOrderSpec, commandResultAccessor: CommandResultAccessor): Mono<OrderCreated>
此时的聚合处于空状态,也可以理解为该方法是一个聚合工厂,订阅首个聚合命令并发布首个领域事件.
Link copied to clipboard
fun onError(createOrder: CreateOrder, throwable: Throwable, eventStream: DomainEventStream?): Mono<Void>