ME-event.yaml
3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# 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