А как это потом встраивается в жизнь? на каждое действие нужен какой-то сервис который его выполнит?
ну конкретно в том проекте было что-то вроде кодогенерации (не в курсе самописная или нет), соответственно на каждый переход был вполне конкретный обработчик, и было довольно приятно менять всякие вещи типа "сначала эту заявку аппрувит А, а потом Б" на "сначала эту заявку аппрувит А или Б, а потом запускаем процесс В, а потом снова аппрув Б или А".