Карта интеграции / Рабочие заметки
Компенсации в распределённом процессе
Что делать, когда следующий шаг не выполнен, а предыдущий уже изменил данные.
Перечислите эффекты
Отделите чтение от действий, создающих ресурс или обязательство. Для каждого изменения запишите доступный обратный или корректирующий шаг.
Сохраните основания
До следующего перехода сохраните идентификатор созданного ресурса. Компенсация должна опираться на факты исполнения, а не повторять исходный поиск.
Оставьте путь эскалации
Компенсация тоже может завершиться ошибкой. Выведите процесс в понятное состояние ручного разбора с историей попыток и безопасным контекстом.