Вот мой вариант использования:
У меня есть служба (служба 1), которая должна обновлять состояние некоторого объекта в нескольких внешних службах (служба 2, служба 3) при получении запроса на это. Я также должен обновить местное для меня состояние (услуга 1). Я пытаюсь обработать сценарии сбоя в этом случае:
- Я успешно обновляю состояния во внешней службе 2 и 3, и мне не удается обновить состояние в службе 4.
- Я успешно обновил состояния во внешней службе 2 и 3 и умер.
- Я успешно обновляю состояния во всех внешних службах, но мне не удается сохранить состояние в моей локальной системе.
Скажем, что сервис 2 производит возврат продуктов, а сервис 3 отмечает счет как оплаченный. Теперь, если я успешно выполню возврат (услуга 2), но не смогу пометить счет как оплаченный (услуга 3), у меня будут серьезные деловые последствия во время финансовой сверки.
Во всех этих случаях есть ли правильный способ справиться с ошибочными сценариями?