Azure Messaging Service in a picture

When you start serverless on Azure, you might be wondering which messaging services to use. I create a simple diagram how to choose the messaging service.
Storage Queue
If you have a asynchronous message between Azure functions, the Storage Queue comes as a first choice. If you find Queue messaging service, Storage Queue have these characteristics
- Default choice for Azure Functions to Azure Functions messaging
- Low cost
- Message size is less than 64k
- No ordering guarantee
Service Bus
If you find reliable solution for Queue and Pub-Sub with enterprise reliability you can choose Service Bus.
Before moving on the detail, I’ll share the Queue and Pub-Sub in a picture.

A queue is simple messaging service for sending messaging asynchronously. A function send a queue, then other function polling the queue then consume the queue. Since it is polling, it is not very fast.
As for publish-subscribe, a message receiver is a subscriber. A subscriber subscribe a topic. If topic receive a message, it send message to the subscribers. Subscriber can filter the messages. It is the overview of the Publish-Subscribe.
In case of Service bus, it has these charactersitics
- Enterprise asynchronous messaging service
- Support Queue and Publish-Subscribe
- Message size is less than 256k
- Ordering guarantee
You can use Service Bus for reliable use case. E.g. Financial / Banking solution.
Event Grid

Event Grid is interesting offer. It has these characteristics
- Millisecond low latency
- Publish-Subscribe
- Low cost
- Support a lot of event sources
You can use Event Grid
- Request for Low latency with asynchronous messaging
- Event handling of a variety of event sources
EventHub / IoTHub
If you need to ingest a lot of messaging at a time, you need to choose EventHub or IoTHub.
This is very good to read for EventHub with a lot of messages.
SignalR Service
This is not asynchronous, but, if you want to have bi-directional messaging, like server to client, you can pick SignalR Service. It is serverless offer for the SignalR. SignalR is based on websocket. However, you don’t need to create a websocket server, also it scale!
If you want to send message through company to company with firewall, you can choose Auzre Relay. It support WebSocket and WCF. This service is also serverless and it is designed for hybrid communication between intranet through the internet.
I use these service to communicate between hololens and hololens through the internet.
Notification hub
Notification Hub is used for mobile push notifications. If you want to communication a lot of clients, you can consider this.
Conclusion
This article is written for a guy wants to try Azure Functions. It is good to know the messaging services. :) This is quick summary, however, you can learn more detail, please refer these articles.