A lot of great discussions in the NServiceBus mailing list have been an excellent resource as well. I spoke with Udi at ALT.NET Seattle and his writing has been both educational and inspirational. Once saga support in MassTransit is complete I plan to review the source for NServiceBus to see how the implementations differ. I should note that NServiceBus (another open source service bus) also supports sagas, but I purposely avoiding taking a look at how Udi Dahan implemented them. After reading Sagas by Hector Garcaa-Molrna and Kenneth Salem (© 1987 ACM, PDF) and the chapter on sagas in the upcoming book Practical SOA by Arnon Rotem-Gal-Oz ( PDF), I started to think about how this could be implemented within MassTransit. I started researching how others approached the problem and found a couple of articles that helped. Due to the duration of these transactions (the example above can take anywhere from three to sixty seconds), it is unreasonable to keep a single System.Transactions style transaction open the entire time. Finally, the user is notified that the transaction is complete and the result is displayed.Īs work proceeded on this application, I started to recognize the need for something to coordinate the different steps in a transaction involving multiple loosely-coupled services. When the response is received, the X12 document is translated and stored in the database. Another web service is polled for the response, which can be the result or an indication that the request is still pending. An intermediate response is returned (a X12 997) with a correlation identifier for the request. The request is formatted into a X12 envelope and sent to a web service. One of the first applications we built with MassTransit provides messaging for a long-running transaction started by an application submitting a request. Managing Long-Lived Transactions with MassTransit.Saga 29 August, 2008.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |