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