标签: database-design transactions atomic distributed-system idempotent
这是我的用例:
我有一个服务(服务1),在收到请求时需要更新多个外部服务(服务2,服务3)中某个实体的状态。我还必须更新本地状态(服务1)。在这种情况下,我正在尝试处理失败情况:
说服务2退还产品,服务3将发票标记为已付款。现在,如果我成功签发了退款(服务2),但没有将发票标记为已付款(服务3),那么在财务对帐期间,我将对业务产生严重影响。
在所有这些情况下,是否有适当的方法来处理失败的方案?