作为交易处理多个命令

作为交易处理多个命令

问题描述:

我目前正在开发支付系统,该支付系统执行支付并写入该项目是在云托管数据库Azure中购买的。作为交易处理多个命令

它是如何工作目前是:

  1. 交易与第三方支付系统
  2. 如果成功,在数据库中的新订阅行添加用户
  3. 的交易记录和其他有关的东西被写入数据库

然而,在万一:

  1. 交易是成功(HTTP调用支付网关返回成功)
  2. 出于某种原因,插入数据库失败

我将结束与已缴付了用户对项目而不考虑实际认购(因为该行不会在我们的数据库)

这两个调用不是数据库相关的(一个是,另一个是简单的异步http请求),所以我不能把它们当作交易(因为我不能真正回滚)。

所以我的问题是更有经验的如何处理这种情况?

为了回答,我已经使用补偿事务模式实现了这一点。

按预期工作