事件溯源是基于编排的 SAGA 模式的增强模式吗?
Posted
技术标签:
【中文标题】事件溯源是基于编排的 SAGA 模式的增强模式吗?【英文标题】:Is event sourcing an enhanced pattern of choreography-based SAGA pattern? 【发布时间】:2021-06-29 06:50:57 【问题描述】:这几天我在研究微服务间的通信模式。所以在我的研究中,我发现有两种模式叫做 SAGA 和事件溯源。但是我在互联网上找不到资源来了解这两种模式之间的区别。我的意思是我知道事件溯源将在事件存储的帮助下捕获事件的历史。所以根据我的理解,我觉得事件溯源就像是基于编排的 SAGA 模式的扩展版本。所以我需要澄清我的论点是否可以接受。我将附上我在下面的互联网上找到的两种模式的示例图。请在您的任何解释中使用这些图表。
References
【问题讨论】:
【参考方案1】:这两者是解决不同问题的兼容模式,Sagas 处理工作流流程,而事件源处理状态存储方式。 Sagas 提供了一种机制来处理多步骤过程,并在步骤失败时回滚(如工作流)。事件溯源是通过记录实体过去的所有变化来编码实体状态的过程。
传奇
假设我们要预订假期,我们需要预订航班、酒店和租车。这些过程中的每一个都由不同的微服务处理。
我们可以创建一个名为 BookingSaga 的微服务,负责跟踪每个预订的状态。当我们进行预订时,BookingSaga 服务会
预订酒店 预订航班 订车这些可以按任何顺序回复,但如果任何一个失败,BookingSaga 将开始回滚并取消任何已经预订的。
https://microservices.io/patterns/data/saga.html
事件溯源
事件溯源通过记录某个实体发生的变化来跟踪它的状态。
对象 A 名称更改为“dave” 对象 A 年龄更改为 3 对象 A 的名称更改为“sue”所以我们可以看到对象 A 的名称为“sue”,所有事件结束时的年龄为 3。 https://microservices.io/patterns/data/event-sourcing.html
【讨论】:
以上是关于事件溯源是基于编排的 SAGA 模式的增强模式吗?的主要内容,如果未能解决你的问题,请参考以下文章