Если срок жизни экземпляра процесса измеряется часами, максимум днями, этой проблемы практически не возникает. Однако, если процесс живёт месяцы и годы, как например, процессы управления проектами, то с каждым днём жизни экземпляра возрастает вероятность того, что он завалится. Меняются веб сервисы, обновляются версии процессов и их модели данных, обновляются версии BPMS, баз данных и.т.д.
Один из вариантов минимзации такого события это отказ от коллаборации и хореографии на верхнем уровне. Процесс разбивается на несколько подпроцессов, и в системе живут толлько небольшие процессы-задачи, которые если и завалятся, то их можно будет легко восстановить. Так наприер, у нас никогда не будет процесса "Строительство объекта №Х", а будет только, например задача- "Провести инспекцию строительного объекта №Х", которая в случае выявленных нарушений прекратит своё существование, и создаст новую задачу "Произвести повторную инспекцию строительного объекта №Х через месяц". Однако, так как у нас нету общей картины, то теряется смысл процессного управления для владельца процесса. Да и такую штуку уже не распечатаешь, и не стену не повесишь.
А кто и как ещё решает проблему долгоработающих процессов?