gpt4 book ai didi

events - 我们真的可以使用 Event Sourcing 和 CQRS(一种用于电子商务结账漏斗的事件驱动架构)吗?

转载 作者:行者123 更新时间:2023-12-04 13:59:11 26 4
gpt4 key购买 nike

假设 Checkout 有以下服务:

  • 订单服务,创建订单并收集运费、付款和下订单并管理订单的生命周期。
  • 库存服务,提供产品的可用性。
  • 送货服务,提供送货选项和费用
  • 客户文件服务,提供客户信息。
  • 信用服务、付款授权
  • 预订服务做预订

  • 以下是订单创建流程:

    创建订单,用户提供送货地址,计算送货选项,收取付款并下订单并向用户显示确认。

    许多零售商结帐都是同步和订购服务编排的。

    假设我们使用事件源、CQRS 和事件存储,订单服务创建一个订单事件并保留在事件存储中,发布域事件和订阅事件存储的所有其他服务,因为它们需要更新交付选项、运输成本、支付完成订单并使用 CQRS 通知用户每个步骤的状态供他查看。

    我试图理解:

    结账应用程序对于结账的所有域事件有多复杂,例如添加送货地址、预订、交付选项选择、添加付款和完成订单?

    它会比协调结帐请求的订单服务的同步操作更快吗?

    如果失败,最终会保持一致性吗?如何处理永远一致性?

    最佳答案

    好吧,我们可以使用事件源和 CQRS 进行结帐过程。就像你说的,你会引发事件,订阅的服务会对此使用react。问题有多复杂或多容易不是问题,在您的情况下是否值得?事件溯源和 CQRS 是一种复杂的模式,有很多好处,但您需要以正确的方式实现它。

    为了最终的一致性,您可能不得不依赖 Saga 模式,如果出现故障,您将不得不采取补偿措施来回滚。

    关于events - 我们真的可以使用 Event Sourcing 和 CQRS(一种用于电子商务结账漏斗的事件驱动架构)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54917442/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com