I really enjoyed Pat's analogy of SOA being like Einsteins view rather than Newtons view of the universe. Its a great way to think of the difference in approaches.
It seems for highly loaded systems that we are increasingly we're moving away from the XA and transactional approaches to looser definitions of consistency (caching/dirty reads, alternative locking models, compensating transactions rather than commit/rollback). I liked Pats hotel room reservation example as well; its rather like Gregor's coffee shop example for asynchrony and loose coupling when ordering coffee without requiring XA.
Personally, I have moved to using transactions purely to batching changes for performance and notifying interested components of groups of changes.
I think transactions still have a place but its traditional role doesn't always perform very well in distributed system which is my main concern.
What about inconsistencies you ask?
There are strategies for keeping these to a minimum but when they do a rise you can put in place some automagic resolution, or push the resolution back to a user or to a back end application administrator.
Post a Comment