We used to support 'heavy' web service transaction standards like WS-Transactions. It was a mistake. A huge one, for that matter. Here is why:
- It's overly complex: to think that different vendors' SOAP interceptors can seamlessly interoperate is wishful thinking. It just doesn't work that way.
- It's a disaster in terms of performance: it takes about 8 or 9 roundtrips (!) to commit just one transaction. Performance, anyone?
- It's a design-by-committee thing, meaning it makes for a compromise between vendor offerings rather than a best-of-breed solution.
So if you want transactions across (web) services then what do you do? There are a few options:
- Use BASE whenever possible: publish significant events to a JMS bus in a reliable way with ACID transactions - available in any of our products.
- For REST-based reservation processes, use our Transactions for SOA approach because it is pure, simple and compliant with pure REST.
- For REST-based microservices: see Transactional REST microservices with Atomikos

Add a comment