Я пытаюсь смоделировать процесс развертывания некоторого программного обеспечения с использованием BPMN. Различные части развертывания могут пойти не так, и я хочу указать на диаграмме, какие шаги следует предпринять в каждом случае.
Сначала казалось, что я должен использовать для этого события «компенсации», но в итоге я использовал события «ошибки». Мне не удалось найти четкое различие между этими двумя понятиями, но лучшее, что я придумал, это то, что «ошибка» указывает, что должно произойти немедленно, если задача выдает ошибку, тогда как «компенсация» указывает, что должно произойти, если когда-нибудь позже процесс необходимо обратить вспять.
Примеры компенсации, которые я видел, — это такие вещи, как турагент, бронирующий отель: задача по отмене бронирования будет тогда компенсационным событием в задаче бронирования. Мне не удалось найти много подходящих примеров «ошибки»: правильно ли я использую «ошибку» в моем случае?