Distributed transactions are used very often in SOA environments. If you have a composite service that calls multiple services, basic service calls should be handled as a single transaction. Business processes should allow the rollback of their steps. If basic resources allow this, you can use two-phase commits, but in many cases this is not possible. In these cases, compensation actions should be performed for services / resources called before the failed step. In other words, undo the following steps in reverse order.
Imaginary example: a telecommunications company claims a new VoIP product for a client with 6 service calls:
- inventory of requests to verify that the customer has the right equipment.
- configure client equipment through
- update inventory with new configuration
- CDR
- , .
- CRM-
6 . . , () .