Transaction in SOA

血红的双手。 提交于 2019-12-03 13:56:53

问题


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?


回答1:


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.




回答2:


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




回答3:


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



来源:https://stackoverflow.com/questions/11671725/transaction-in-soa

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!