Допустим, есть некая последовательность выполнения методов
Object Class.method1();
Object Class.method2();
Object Class.method3();
Object Class.method4();
Каждый из методов может возвращать набор достаточно "сырых" данных(файлы, collection) достаточно приличным объемом.
Есть задача, если по каким либо причинам при выполнении одного из методов программа "упала", после запуска программы была возможность начать работу с упавшего метода.
Кто нить красиво это решал в standalone приложениях без всяких haxa транзакций?

самое просто решение это вести лог выполения и кэшировать на hdd полученные данные.
После сбоя искать лог не завершенный и пытаться поднять кэш.
Очевидные проблемы с невозможностью порой сериализовать "чужие" сущности и тд...вообщем давайте обсудим)