简体   繁体   中英

Transaction in SOA

Is there any possibility to propagate transactions between different SOA services which are from different platforms like .NET or Java?

I know the transaction can flow in and out between WCF services which is coming from .NET. But I am not familiar with Java platform.

Now I am working in a project which communicates the services from different platform.

How can I maintain consistency in business?

If your client and server SOA infrastructure (and by extension, the underlying back-end systems being accessed in the various service implementations) support WS-Transaction, then this would allow for transaction propagation.

However, I work in a huge financial services SOA middleware environment and we choose to manage transactions ourselves: using manual compensation. While more complex, not relying on any distributed transaction coordinator does give us flexibility and performance increases.

Transactions between services are bad for your SOA as they introduce a lot of coupling between services. Service boundary is a trust boundary. You are better off using Sagas and compensations as Daniel noted

Try this pattern: http://www.atomikos.com/Publications/TryCancelConfirm

It is related to the saga and compensation approaches and combines the best of all worlds.

Best

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM