这是我的用例:
我有一个服务(服务1)需要更新多个外部服务(服务2,服务3)中的某个实体的状态,获取请求。我还必须更新本地的状态(服务1)。我试图在这种情况下处理故障情况:
假设服务2退还产品,服务3将发票标记为已付款。现在,如果我成功发出退款(服务2)但未将发票标记为付款(服务3),我将在财务调节期间产生严重的业务影响。
在所有这些情况下,是否有适当的方法来处理失败的情况?
正确的方法是使用分布式事务和两阶段提交,例如应用XA协议。