事件驱动架构中的事件处理与设计指南
1. 处理架构变更与事件流管理
在处理架构变更时,对于旧架构下的实体,应将其保留在原始事件流中,因为在重新处理验证和取证调查时可能会用到这些旧实体。同时,使用新架构将新的和更新后的实体生成到新的事件流中。
对于非实体事件,在引入重大变更时处理起来相对简单。最简单的方法是创建一个新的事件流,并开始向该流生成新事件。需要通知旧事件流的消费者,以便他们可以注册为新事件流的消费者。每个消费服务还必须考虑两个事件定义之间业务逻辑的差异。
1.1 事件流管理原则
不要在一个事件流中混合不同类型的事件,特别是在进化上不兼容的事件类型。事件流的开销较低,而逻辑分离对于确保消费者在处理需要处理的事件时拥有完整信息和明确的定义非常重要。
由于旧事件流不再有新事件生成,每个消费服务的消费者最终会处理到最新记录。随着时间的推移,事件流的保留期最终会导致该流被完全清除,此时所有消费者可以取消注册,事件流也可以被删除。
1.2 事件流管理流程
graph LR
A[保留旧实体在原事件流] --> B[创建新事件流]
B --> C[向新流生成新事件]
C --> D[通知旧流消费者]
D --> E[消费者注册新流]
E --> F[消费服务考虑逻辑差异]
F --> G[旧流无新事件]
G --> H[消费者处理到最新记录]
H --> I[保留期结束清除旧流]
I --> J[消费者取消注册]
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



