← 返回所有文章

事件驱动架构与Scrum:构建响应式系统

By XNM Technologies · March 7, 2023 · 1 min read
事件驱动架构与Scrum:构建响应式系统

事件驱动架构(EDA)颠覆了同步请求-响应模型:组件不再直接相互调用,而是发出事件——某事已发生的记录——其他组件订阅并异步做出响应。优势是实实在在的:解耦、水平可扩展性、实时处理,以及天然的审计跟踪。挑战同样真实:最终一致性(系统不同部分可能持有不同状态视图);调试复杂性(通过异步事件链追溯故障);事件顺序(分布式系统不保证顺序);以及模式演化(更改事件结构会破坏所有消费者)。

将EDA工作融入Scrum

三种实践已被证明特别有价值。「事件风暴」(Alberto Brandolini创建)是一种协作工作坊形式,领域专家与技术实践者共同绘制业务领域中流动的事件——是Sprint计划会的理想输入,能自然地将工作分解为有界上下文。「消费者驱动契约」(CDC)测试让每个消费者定义其期望的事件结构,生产者的测试套件则验证所有已发出的事件满足全部已知消费者契约——相当于分布式事件系统中的编译时类型检查,应成为任何产生或更改事件的故事的完成定义组成部分。可观测性作为完成定义的一级标准应包括:携带关联ID的事件、消费者处理延迟的度量与告警、死信队列的监控,以及作为服务级别指标跟踪的事件流积压。

EDA与微服务经常被一起讨论,但它们是独立的架构选择。EDA特别适合微服务,因为它解决了同步通信带来的耦合问题。但需注意EDA会增加复杂性——对于业务规则简单的小型系统,可能不值得为事件流和分布式追踪基础设施付出运营开销。对Scrum团队而言,应在每个重要架构决策点重新审视这一问题,而非在项目启动时「一次性」决定并固化。

如果您的团队正在应对构建响应式事件驱动系统所涉及的架构选择,XNM的项目群与项目交付咨询服务可以帮助您权衡利弊,并构建EDA在规模化场景中取得成功所需的交付实践。