Search code examples
nservicebus

Best alternative to MSMQ transport in NServiceBus


We regularly get issues with MSMQ on Nsb, issues like at some point of time MSMQ on one machine does not want to accept mesages from the other machine until we restart service or reboot a machine. So we're looking for alternatives. However we'd like to keep this important features of MSMQ:

  • part of distributed transactions, so that subsequent messages are not sent from Nsb handler if the handler rolls back distributed transaction. We use MSDTC;
  • incoming or outgoing messages should be stored in a reliable permanent storage like disk or database if Nsb service-receiver is not available and no one message should be lost
  • Can handle huge volume of messages, currently we handle like thousand messages every second for all services combined, or could be hundred or two per sec per service

Here is a list of Nsb alternative sources: https://docs.particular.net/transports/

Anyone has experience working with any of this?


Solution

  • I personally would try and resolve my MSMQ issues and get the system working ok, there are many systems running successfully on MSMQ... However, if you made your mind up to switch, I think the best alternative given your features above is SQL server transport