We are developing a new application using nServicebus in an enterprise environment. The application will use multiple databases for storing different commands and events, using the newly supported multi database functionality in nServicebus SQL transport. Now I’m looking into the use of distributed transactions and where this could cause performance problems. This led me to the conclusion that a store and forward mechanism with a local transmission queue could (in complex scenario’s) be more optimal with SQL transport. SQL Server Service Broker Queues could be used to accomplish this. I understand that the use of service broker functionality would increase complexity, but for complex enterprise situation it could greatly improve performance and availability.
I included an example scenario to show this: An external web service is called to initiate the flow, a command is send to a nServicebus queue. A worker processes the command and sends an event to 2 subscribers.
Current SQL Transport (with multi database support):
The distributed transaction could under high load cause problems. Depending on the functionality during processing this transaction could take some time, during which MSDTC is involved.
SQL Transport with store and forward / a local delivery queue (based on SQL Server Service Broker):
Here we would only need native transactions, because the transfer to another database would be done by SQL Server Service Broker. The transaction would be as long, but would only be a native database transaction.
Don't get me wrong, the first scenario will work, but we would like to avoid DTC if possible because of the risks. I'm wondering if other people have run in these kind of scenario's and have found other solutions or have implemented this and found/didn't find any problems? Is there any interest in supporting Service Broker queues as transport alongside SQL transport?
Thanks,
Erik
--
You received this message because you are subscribed to the Google Groups "Particular Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to particularsoftw...@googlegroups.com.
To post to this group, send email to particula...@googlegroups.com.
Visit this group at http://groups.google.com/group/particularsoftware.
To view this discussion on the web visit https://groups.google.com/d/msgid/particularsoftware/a6ade526-fde9-4ac2-8674-61c5f904c7c3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.