We have decided to base our system around Azure Service Bus with other messaging services (Service Grid, Event Hubs) used as well but for narrower tasks.
p.s. our context is ERP system; where the focus is on business messages of high value (rather than speed, throughput as might be the case for others).
Arguments in this Mircosofts's article (by Architect of Azure Service Bus) has strongly influence our choice. In particular the following:
Azure Service Bus
Azure Service Bus is the “Swiss Army Knife” service for all other
generic messaging tasks. While Azure Event Grid and Azure Event Hubs
have a razor-sharp focus on the collection and distribution of events
at great scale, and with great velocity, an Azure Service Bus
namespace is a host for queues holding jobs of critical business
value. It allows for the creation of routes for messages that need to
travel between applications and application modules. It is a solid
platform for workflow and transaction handling and has robust
facilities for dealing with many application fault conditions.
A sale recorded in a point-of-sale solution is both a financial record
and an inventory tracking record, and not a mere event. It’s recorded
in a ledger, which will eventually be merged into a centralized
accounting system, often via several integration bridges, and the
information must not be lost on the way. The sales information,
possibly expressed as separate messages to keep track of the stock
levels at the point of sale, and across the sales region, may be used
to initiate automated resupply orders with order status flowing back
to the point of sale.
A particular strength of Service Bus is also its function as a bridge
between elements of hybrid cloud solutions and systems that include
branch-office or work-site systems. Systems that sit “behind the
firewall”, are roaming across networks, or are occasionally offline
can’t be reached directly via “push” messaging, but require messages
to be sent to an agreed pickup location from where the designated
receiver can obtain them.
Service Bus queues or topic subscriptions are ideal for this use-case,
where the core of the business application lives in the cloud or even
an on-site datacenter, branch-offices, work-sites, or service tenants
spread across the world. This model is particularly popular with SaaS
providers in health care, tax and legal consulting, restaurant
services, and retail.
Composition
Because it’s often difficult to draw sharp lines between the various
use-cases, the three services can also be composed.
e.g. both Service Bus and Event Hub will emit events into Event Grid that will allow applications to react to changes quickly, while not wasting resources on idle time
https://azure.microsoft.com/sv-se/blog/events-data-points-and-messages-choosing-the-right-azure-messaging-service-for-your-data/
https://azure.microsoft.com/sv-se/blog/events-data-points-and-messages-choosing-the-right-azure-messaging-service-for-your-data/
Another good article (pointed out by @brad-irby) provides more details and somewhat different view:
https://learn.microsoft.com/en-us/azure/event-grid/compare-messaging-services
We have also added event sourcing
functionality; which is very important in our context.