Azure Service Bus:
- ASB is centralize transport.
- Configure it in one give place which is easier to analyze and monitor.
- ASB will allow for easy implementation of competing consumer pattern So on ASB if you see that your endpoint does not handle the number of messages that It receive you can run an additional instance of that endpoint and now you have two endpoint reading from that queue processing messages 2 times faster.
- Microsoft announced that they will not port MSMQ to .NET core. So if the .NET core is important (plan to see it in the future ). MSMQ will not be an option.
- Local queuing technology – send/publish a message to an endpoint in his local queue.
- Reading from that queue is faster than reaching out to ASB.
- MSMQ is distributed transport. Harder to deploy and configure.
- Monitoring such a system is troublesome.
- MSMQ each node has own physical queue. This makes it impossible to apply the competing consumer pattern.