Azure Messaging Service in a picture

Tsuyoshi Ushio
4 min readJul 11, 2018

Azure Messaging Service overview

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.

Queue and Publish-Subscribe

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

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.

Tsuyoshi Ushio
Tsuyoshi Ushio

Written by Tsuyoshi Ushio

Senior Software Engineer — Microsoft

Responses (1)

Write a response