我目前正在开发支付系统,执行支付并写入该项目是在云托管数据库Azure中购买的。
它目前的工作原理是:
但是,在不太可能的情况下:
我将最终得到用户已经为该项目付款而没有该项目的实际订阅。(因为该行不在我们的数据库中)
这两个调用与数据库无关(一个是,另一个是简单的异步http请求)所以我不能将它们视为事务(因为我无法真正回滚)。
所以我的问题是更有经验的如何处理这种情况?
为了回答,我使用补偿交易模式实现了这一点。
按预期工作