Допустим, у вас есть приложение, соединяющее 3 разные внешние системы.Вам нужно что-то обновить во всех 3. В случае сбоя необходимо откатить операции.Это несложно реализовать, но, скажем, операция 3 завершается неудачно, а при откате происходит откат операции 1!Теперь первая внешняя система находится в недопустимом состоянии ...
Я думаю, что возможное решение - закрыть приложение и принудительно исправить внешнюю систему вручную, но опять же ... Возможно,уже использовали эту информацию (и, возможно, именно поэтому она не удалась), или у нас может не быть достаточного доступа.Или это может даже не быть хорошим способом откатить действие!
Есть ли хорошие способы обработки таких случаев?
РЕДАКТИРОВАТЬ: Некоторые детали приложения ..
Этомногопользовательское веб-приложение.Большая часть работы выполняется с помощью запланированных заданий (через Quartz.Net), поэтому большинство операций выполняется в собственном потоке.Некоторые пользовательские действия должны запускать задания, которые обновляют несколько систем.Внешние системы несколько нестабильны.
Я думал об изменении приложения для использования шаблона «Команда и единица работы»