Я ищу способ управления согласованными наборами изменений в нескольких источниках данных, включая базу данных, некоторые инструменты управления сетью и, возможно, другие службы на основе SOAP, но не ограничиваясь ими.
Если по какой-либо причине произошел сбой одного изменения (например, в реальном приложении «нет» или произошла ошибка вставки базы данных), я хочу, чтобы весь набор был отменен.Так что это похоже на транзакции, но не ограничивается только БД.
Я придумал модуль, который складывает «измененные» объекты, которые в свою очередь имеют свои методы init, commit и rollback.Когда набор УНИЧТОЖЕН, он откатывает незафиксированные изменения обратно.Это вроде работает.
Тем не менее я не могу преодолеть чувство, что изобретается колесо.Существует ли стандартный модуль CPAN или хорошо описанный общий метод для выполнения такой задачи?(По крайней мере, на ум приходят "командный" шаблон GoF и принцип RAII ...)