作为交易处理多个命令
问题描述:
我目前正在开发支付系统,该支付系统执行支付并写入该项目是在云托管数据库Azure中购买的。作为交易处理多个命令
它是如何工作目前是:
- 交易与第三方支付系统
- 如果成功,在数据库中的新订阅行添加用户
- 的交易记录和其他有关的东西被写入数据库
然而,在万一:
- 交易是成功(HTTP调用支付网关返回成功)
- 出于某种原因,插入数据库失败
我将结束与已缴付了用户对项目而不考虑实际认购(因为该行不会在我们的数据库)
这两个调用不是数据库相关的(一个是,另一个是简单的异步http请求),所以我不能把它们当作交易(因为我不能真正回滚)。
所以我的问题是更有经验的如何处理这种情况?
答
为了回答,我已经使用补偿事务模式实现了这一点。
按预期工作