Azure Architect Notes: Azure Service Bus

This post is the first in a series called Azure Architect Notes. I will provide an overview of different Azure topics from an architect perspective with lots of references. Please suggest topics in the comments.

“Service Bus supports two distinct messaging patterns: Azure Relay and Service Bus Messaging.”Source

Azure RelayThere are 2 main things to know about Azure Relay.

  1. Azure Relay is synchronous, bi-directional communication similar to a phone call. Both entities need to be online at the same time.
  2. It is great for facilitating connections between the cloud and on-prem because you don’t have to open the firewall for incoming traffic. Both servers establish outgoing connections to the Relay and then communication can happen without enabling incoming traffic through the firewall.

Read more on Azure Relay

 

Service BusIn contrast to Azure Relay, Service Bus Messaging can be thought of as asynchronous, similar to the postal service. “Producers” and “consumers” do not have to be online at the same time. The main components are Queues, Topics, and Subscriptions.

Read more on Service Bus Messaging

Queues offer First In, First Out (FIFO) message delivery to one or more competing consumers. That is, messages are typically expected to be received and processed by the receivers in the order in which they were added to the queue, and each message is received and processed by only one message consumer.” – Source

Architect Pattern to Know: Queue-Based Load Leveling

queue based load leveling pattern

“Requests from a number of tasks, which can be generated at a highly variable rate, can be passed to the service through the same message queue. This figure shows using a queue to level the load on a service.” – Source

Architect Pattern to Know: Competing Consumers

competing-consumers-diagram

“Enable multiple concurrent consumers to process messages received on the same messaging channel. This enables a system to process multiple messages concurrently to optimize throughput, to improve scalability and availability, and to balance the workload.” – Source

“In contrast to queues, in which each message is processed by a single consumer, topics and subscriptions provide a one-to-many form of communication, in a publish/subscribe pattern. Useful for scaling to very large numbers of recipients, each published message is made available to each subscription registered with the topic.” – Source

Architect Pattern to Know: Priority Queue

priority-queue-service-bus

“Microsoft Azure doesn’t provide a queuing mechanism that natively supports automatic prioritization of messages through sorting. However, it does provide Azure Service Bus topics and subscriptions that support a queuing mechanism that provides message filtering, together with a wide range of flexible capabilities that make it ideal for use in most priority queue implementations.” – Source

Azure Service Bus References

Leave a Comment