# ME EDA事件驱动模型 (v2.1:新增 OrderAudited 事件) # 页面提交完成后监听领域事件,自动刷新页面、弹窗反馈、触发异步补偿逻辑。 eventModel: globalConfig: idGenerator: snowflake bus: rocketmq retry: 3 dlq: topic_msg_dlq outbox: enabled: true table: t_domain_outbox pollInterval: 1000ms batchSize: 50 cleanupDays: 7 aggregateEventDefinitions: - aggregateId: CustomerAggregate events: CustomerCreated: topic: topic_customer_create payload: [customerId, customerName, customerLevel] consumers: [customer-service] CustomerInfoModified: topic: topic_customer_modify payload: [customerId, contactPhone, customerLevel] consumers: [customer-service] - aggregateId: ProductAggregate events: ProductCreated: topic: topic_product_create payload: [productId, skuCode, salePrice, stockNum] consumers: [product-service] ProductPriceChanged: topic: topic_product_price payload: [productId, salePrice, saleCurrency] consumers: [order-service] ProductStockDeducted: topic: topic_stock_deduct payload: [productId, stockNum] consumers: [order-service] ProductStockReturned: topic: topic_stock_return payload: [productId, stockNum] consumers: [order-service] - aggregateId: OrderAggregate events: OrderCreated: topic: topic_order_create payload: [orderId, customerId, totalAmount] consumers: [product-service, customer-service] OrderItemAdded: topic: topic_order_item_added payload: [orderId] consumers: [order-service] OrderPaymentTermSet: topic: topic_order_payment_term_set payload: [orderId] consumers: [order-service] OrderDeliveryAddressSet: topic: topic_order_delivery_address_set payload: [orderId] consumers: [order-service] OrderDeliveryAddressModified: topic: topic_order_addr_modify payload: [orderId, receiverPhone] consumers: [order-service] OrderCancelled: topic: topic_order_cancel payload: [orderId, productIdList] consumers: [product-service] OrderAudited: topic: topic_order_audited payload: [orderId, orderStatus, auditorId, auditorName] consumers: [order-service] - aggregateId: EmployeeAggregate events: EmployeeCreated: topic: topic_employee_create payload: [employeeId, employeeName, department] consumers: [employee-service] EmployeeModified: topic: topic_employee_modify payload: [employeeId, employeeName, department, remark] consumers: [employee-service] # 跨聚合最终一致规则(结构化): # sourceItemEntity 指明从触发聚合的哪个子实体取"逐项上下文"; # paramMap 把子实体字段映射为目标命令入参;引擎据此 + M2 命令的 effect 通用执行,无硬编码。 crossAggConsistencyRules: - triggerEvent: OrderCreated sourceItemEntity: OrderItem targetAggregate: ProductAggregate targetCommand: StockDeduct paramMap: productId: productId deductQty: quantity consistencyType: eventual - triggerEvent: OrderCancelled sourceItemEntity: OrderItem targetAggregate: ProductAggregate targetCommand: StockReturn paramMap: productId: productId returnQty: quantity consistencyType: eventual