Сервисы SOA должны быть автономными сервисами, но на практике нам нужно организовать эти сервисы для выполнения некоторых бизнес-процессов.
Теперь, чтобы процесс и данные были непротиворечивыми, нам нужно убедиться, что все сервисы выполняются или ни один из них не выполняется.
Один из способов реализации — внедрить логику «компенсации» для каждой службы и вызвать ее, если в процессе/предыдущей службе возникла какая-то проблема.
Есть ли лучший способ или какой-то стандарт сделать то же самое, например, убрать контекст транзакции и реализовать что-то вроде двухфазной фиксации?