AZ-900Chapter 74 of 127Objective 2.2

Azure Service Bus Messaging

This chapter covers Azure Service Bus, a fully managed enterprise message broker that decouples applications and services for reliable, secure, and asynchronous communication. For the AZ-900 exam, understanding Service Bus is part of Objective 2.2 (Azure Architecture Services), which constitutes approximately 15-20% of the exam. You will learn what Service Bus is, how it works, its core components (queues, topics, subscriptions), and how it compares to other messaging services like Azure Queue Storage and Event Grid. This knowledge is critical for answering scenario-based questions about application integration and decoupling.

25 min read
Intermediate
Updated May 31, 2026

The Airport Control Tower for App Messages

Imagine a busy airport. Planes (applications) need to send passengers (messages) to other planes or to the terminal (other apps). Without a control tower, each plane would have to coordinate directly with every other plane, leading to chaos, missed connections, and crashes. Azure Service Bus acts like that control tower. A plane (sender) radios the tower: 'I have 50 passengers for Flight 207.' The tower records this in a flight log (queue). Later, Flight 207 (receiver) calls the tower: 'Any passengers for me?' The tower hands over the passenger list and removes it from the log. The tower also handles 'connecting flights': if a passenger needs to go to multiple destinations, the tower makes photocopies of the manifest and places them in multiple outgoing bins (topics and subscriptions). Finally, the tower ensures that even if a plane is delayed, the passengers wait safely in the terminal (dead-letter queue) and are not lost. This decouples the planes — they never talk directly, only through the tower. Service Bus does the same: it decouples applications, stores messages durably, and ensures reliable delivery even when one app is offline.

How It Actually Works

What is Azure Service Bus and What Business Problem Does It Solve?

Azure Service Bus is a fully managed enterprise message broker that enables reliable and secure asynchronous communication between applications and services. It acts as an intermediary, allowing applications to send and receive messages without being directly connected. This decoupling is crucial for building resilient, scalable, and loosely coupled distributed systems.

Business Problem: In traditional monolithic or tightly coupled systems, applications communicate directly via APIs or remote procedure calls (RPC). This creates dependencies: if one application is down, the entire system may fail. Scaling is difficult because each component must handle peak load simultaneously. Service Bus solves this by introducing a message queue or pub/sub pattern. Senders deposit messages into a queue or topic, and receivers retrieve them at their own pace. This allows components to fail independently, scale independently, and be updated without affecting others.

How It Works – Step by Step Mechanism

1.

Namespace Creation: You start by creating a Service Bus namespace in Azure. This is a container for all messaging components (queues, topics). It provides a unique FQDN (e.g., mynamespace.servicebus.windows.net).

2.

Queue or Topic Setup: Within the namespace, you create a queue (for point-to-point communication) or a topic (for publish/subscribe). Each has configurable properties like message time-to-live, duplicate detection, and partitioning.

3.

Authentication and Authorization: Applications connect using a connection string or managed identity. The connection string includes the namespace endpoint and a shared access signature (SAS) key. Service Bus supports Azure Active Directory (now Microsoft Entra ID) for fine-grained RBAC.

4.

Sending Messages: A sender application creates a message (typically JSON or XML) and sends it to a queue or topic using the Azure SDK (e.g., .NET, Java, Python). The message is stored durably in the queue/topic until consumed.

5. Receiving Messages: A receiver application can read messages in one of two modes: - Peek-Lock (ReceiveAndDelete): The receiver locks the message, processes it, and then completes it. If the receiver crashes, the lock expires and the message reappears for another receiver. - Receive-and-Delete: The message is removed immediately upon delivery. If processing fails, the message is lost.

6.

Dead-Letter Queue: If a message cannot be processed after a maximum number of delivery attempts (default 10), or if it expires, it moves to a dead-letter queue. This allows for manual inspection and reprocessing.

Key Components, Tiers, and Pricing

Queues: FIFO (first-in, first-out) message delivery. One sender, one receiver. Supports sessions for ordered processing.

Topics and Subscriptions: Implement publish/subscribe. A topic can have multiple subscriptions, each getting a copy of every message. Filters (SQL-like or boolean) allow subscribers to receive only relevant messages.

Tiers: - Basic: Queues only, 1 MB message size, no topics, no duplicate detection, 99.9% SLA. - Standard: Queues, topics, subscriptions, up to 256 KB message size, 99.9% SLA. - Premium: Dedicated resources, up to 1 MB message size, 99.95% SLA, faster throughput, and advanced features like partitioning and duplicate detection.

Pricing: Based on number of operations (send, receive, peek, etc.) and message size. Standard tier has a free monthly allowance (e.g., 10 million operations). Premium is charged by messaging unit (MU) capacity.

On-Premises Equivalent

On-premises, you might use MSMQ (Microsoft Message Queuing) or RabbitMQ. MSMQ is a Windows component for simple queuing. RabbitMQ is a popular open-source broker but requires server management, clustering, and monitoring. Service Bus eliminates these operational burdens: no patching, no high-availability setup, no capacity planning for hardware. It also provides built-in security, geo-replication, and integration with other Azure services.

Azure Portal and CLI Touchpoints

Portal: - Navigate to "Create a resource" → "Integration" → "Service Bus". - Create a namespace (name, pricing tier, location). - Inside the namespace, create queues and topics with properties like "Max delivery count" and "Message time to live". - View metrics (incoming messages, active messages, dead-lettered messages).

CLI Example:

# Create a resource group
az group create --name MyResourceGroup --location eastus

# Create a Service Bus namespace (Standard tier)
az servicebus namespace create --resource-group MyResourceGroup --name MyNamespace --location eastus --sku Standard

# Create a queue
az servicebus queue create --resource-group MyResourceGroup --namespace-name MyNamespace --name MyQueue

# Create a topic
az servicebus topic create --resource-group MyResourceGroup --namespace-name MyNamespace --name MyTopic

# Create a subscription with a filter
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription

PowerShell Example:

New-AzServiceBusNamespace -ResourceGroupName MyResourceGroup -Name MyNamespace -Location eastus -SkuName Standard
New-AzServiceBusQueue -ResourceGroupName MyResourceGroup -NamespaceName MyNamespace -Name MyQueue

Walk-Through

1

Create a Service Bus Namespace

In the Azure portal, search for 'Service Bus' and click 'Create'. You need to specify a unique namespace name (e.g., 'contoso-orders'), a pricing tier (Basic, Standard, or Premium), and a region. The namespace is the logical container for all messaging entities. Behind the scenes, Azure provisions the underlying infrastructure, including load balancers and storage. For Standard tier, you get a 99.9% SLA. The namespace endpoint will be something like 'contoso-orders.servicebus.windows.net'. You also need to create a shared access policy (e.g., 'RootManageSharedAccessKey') with Send and Listen claims for applications to connect.

2

Create a Queue or Topic

Inside the namespace, create a queue for point-to-point communication or a topic for pub/sub. For a queue, you set properties like 'Max delivery count' (default 10), 'Message time to live' (default 14 days), and 'Enable partitioning' (for large queues). For a topic, you also create subscriptions (e.g., 'OrdersSubscription') and optionally define filters. Each subscription gets its own copy of messages. The portal shows these entities under the 'Entities' blade. CLI example: `az servicebus queue create --namespace-name MyNamespace --name MyQueue`.

3

Configure Authentication

Applications need to authenticate to send/receive messages. The simplest way is to use a connection string from the 'Shared access policies' blade. Copy the 'RootManageSharedAccessKey' connection string (primary or secondary). For production, use managed identities with Azure AD. Assign the 'Azure Service Bus Data Sender' or 'Azure Service Bus Data Receiver' role to the application identity. This avoids storing secrets. For example, an Azure Function can use a system-assigned managed identity to connect without a connection string.

4

Send a Message from an Application

Use the Service Bus SDK (e.g., .NET, Java, Python) to send a message. Create a `ServiceBusClient` with the connection string or managed identity credential. Then create a `ServiceBusSender` for the queue or topic. Call `SendMessageAsync` with a `ServiceBusMessage` object. The message body can be a string or binary data. The SDK serializes the message and sends it to the namespace. Azure stores the message durably in the queue/topic. If the receiver is offline, the message waits. The sender gets an acknowledgment once the message is persisted.

5

Receive and Process the Message

Create a `ServiceBusReceiver` for the queue or a subscription. Use `ReceiveMessagesAsync` to retrieve messages. In peek-lock mode, the message is locked for a default 30 seconds (configurable). Process the message, then call `CompleteMessageAsync` to remove it from the queue. If processing fails, call `AbandonMessageAsync` to unlock it for retry. After 'Max delivery count' attempts, the message moves to the dead-letter queue. For topics, each subscription acts like an independent queue. You can also use 'ReceiveAndDelete' mode for at-most-once delivery.

What This Looks Like on the Job

Scenario 1: E-Commerce Order Processing

A large online retailer uses a microservices architecture. When a customer places an order, the order service sends a message to a Service Bus queue. The inventory service, payment service, and shipping service each listen to this queue (or use topics with filters). This decouples the services: if the payment service is down, the order message remains in the queue until it recovers. The team configures the queue with a 7-day TTL and max delivery count of 5. They use Premium tier to handle peak holiday traffic (thousands of orders per second). Cost is based on messaging units (MUs); they scale to 4 MUs during Black Friday. A common mistake is not setting duplicate detection, causing duplicate orders. They enable 'RequiresDuplicateDetection' with a 10-minute window.

Scenario 2: Real-Time Inventory Updates

A retail chain with hundreds of stores uses Service Bus topics to broadcast inventory changes. Each store has a subscription with a filter (e.g., 'StoreID = 42'). When a warehouse updates stock, it publishes a message to the 'InventoryUpdates' topic. Only the relevant store's subscription receives the message. This reduces network traffic and processing. The team uses Standard tier because throughput is moderate. They use SQL filters (e.g., StoreID = 42) to route messages. A pitfall is forgetting to set a default TTL; messages can accumulate if stores are offline. They set TTL to 1 day and monitor dead-letter queues.

Scenario 3: IoT Device Command and Control

A smart building company uses Service Bus to send commands to thousands of IoT devices. Devices receive messages from a queue (one queue per device group). The backend sends commands like 'SetTemperature(22)'. Each device polls its queue every 5 seconds. Service Bus ensures that commands are not lost even if a device is temporarily disconnected. They use Standard tier with partitioning for high throughput. A common issue is using too large messages (exceeding 256 KB in Standard); they compress payloads. They also use sessions to ensure ordered processing for each device.

How AZ-900 Actually Tests This

Objective Code: AZ-900 Objective 2.2 – Describe Azure architecture services

This objective includes understanding messaging and event services. Service Bus is specifically tested as an enterprise messaging broker. The exam will likely present a scenario where you must choose between Service Bus, Queue Storage, Event Grid, or Event Hubs.

Common Wrong Answers and Why Candidates Choose Them

1.

Choosing Queue Storage over Service Bus for enterprise scenarios. Candidates pick Queue Storage because it's simpler and cheaper. However, the scenario mentions 'enterprise', 'ordering', 'transactions', 'duplicate detection', or 'pub/sub' – these are Service Bus features. Queue Storage is for simple, low-cost, at-least-once delivery without advanced features.

2.

Confusing Service Bus with Event Grid. Both are event-driven, but Event Grid is for reactive event routing (HTTP push) with low latency, while Service Bus is for durable message queuing with pull-based consumption. If the scenario says 'reliable queuing' or 'dead-letter', it's Service Bus.

3.

Thinking Service Bus only supports queues. Candidates forget about topics and subscriptions. The exam may ask about pub/sub patterns; Service Bus topics are the correct answer.

Specific Terms and Values

Message size limits: Basic/Standard = 256 KB, Premium = 1 MB.

SLA: Basic/Standard = 99.9%, Premium = 99.95%.

Max delivery count: Default 10.

Time to live: Default 14 days.

Peek-Lock vs. ReceiveAndDelete: Know the difference.

Sessions: For ordered message processing.

Dead-letter queue: Automatic for undeliverable messages.

Edge Cases and Tricky Distinctions

Duplicate detection: Only in Standard and Premium. Basic does not support it.

Partitioning: Only in Standard and Premium (enabled at creation).

Transactions: Service Bus supports transactions across queues/topics (atomic send and receive).

Auto-forwarding: Chain queues/topics automatically.

Memory Trick: 'SEED' for Service Bus vs. Queue Storage

S – Sessions (ordered processing)

E – Enterprise features (duplicate detection, transactions)

E – Events (pub/sub with topics)

D – Dead-letter queue

If the scenario needs any of these, pick Service Bus. If it's simple, cheap, and no ordering needed, pick Queue Storage.

Key Takeaways

Azure Service Bus is a fully managed enterprise message broker for decoupling applications.

It supports point-to-point (queues) and publish/subscribe (topics and subscriptions) patterns.

Key features: FIFO ordering, duplicate detection, sessions, transactions, dead-letter queue.

Tiers: Basic (queues only), Standard (queues + topics), Premium (dedicated resources, higher throughput).

Message size limits: Basic/Standard = 256 KB, Premium = 1 MB.

SLA: Standard = 99.9%, Premium = 99.95%.

Default TTL = 14 days; default max delivery count = 10.

Use Peek-Lock mode for at-least-once delivery; ReceiveAndDelete for at-most-once.

Service Bus is distinct from Queue Storage (simple, no advanced features) and Event Grid (push-based, short retention).

The exam tests scenarios where you choose Service Bus for enterprise features like ordering, transactions, and pub/sub.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Azure Service Bus

Enterprise messaging broker with FIFO ordering

Supports topics and subscriptions (pub/sub)

Duplicate detection, transactions, sessions

Dead-letter queue for failed messages

SLA: 99.9% (Standard), 99.95% (Premium)

Azure Queue Storage

Simple, low-cost queue for at-least-once delivery

No pub/sub; only point-to-point queues

No duplicate detection, no transactions

No dead-letter queue; messages stay until deleted or expire

SLA: 99.9% (Standard), 99.9% (Premium for Queue Storage)

Azure Service Bus

Pull-based message consumption (receiver polls)

Supports durable queuing with TTL and retries

Ideal for command and control, order processing

Message size up to 256 KB (Standard) or 1 MB (Premium)

Pricing based on operations and throughput

Azure Event Grid

Push-based event distribution (HTTP webhook delivery)

Events are not stored durably (max 24 hours retention)

Ideal for reactive event routing (e.g., blob created)

Event size up to 1 MB

Pricing per million events (first 100k free)

Watch Out for These

Mistake

Service Bus is the same as Azure Queue Storage.

Correct

They are different services. Queue Storage is a simple, low-cost queue for at-least-once delivery with no ordering guarantees. Service Bus provides FIFO ordering, duplicate detection, sessions, pub/sub (topics), transactions, and dead-letter queues. Service Bus is for enterprise messaging; Queue Storage is for simple task queuing.

Mistake

Service Bus can only send messages within the same region.

Correct

Service Bus operates globally. You can send messages to a namespace in another region, but cross-region messaging incurs higher latency and egress costs. Premium tier supports geo-replication for disaster recovery.

Mistake

Service Bus messages are stored indefinitely.

Correct

Messages have a configurable Time-to-Live (TTL), default 14 days. After TTL expires, the message is moved to the dead-letter queue or discarded. You can set TTL to a maximum of unlimited (if using SDK, but Azure enforces a practical limit).

Mistake

Service Bus supports pub/sub only with topics.

Correct

True, but you can also achieve pub/sub using multiple queues and a fan-out pattern. However, topics and subscriptions are the native pub/sub mechanism with built-in filtering.

Mistake

Service Bus Basic tier supports topics.

Correct

No. Basic tier only supports queues. Topics and subscriptions are available in Standard and Premium tiers.

Frequently Asked Questions

What is the difference between Azure Service Bus and Azure Queue Storage?

Service Bus is an enterprise message broker with advanced features like FIFO ordering, duplicate detection, sessions, transactions, and pub/sub via topics. Queue Storage is a simpler, cheaper queue for at-least-once delivery without ordering guarantees. Choose Service Bus when you need reliability, ordering, or pub/sub; choose Queue Storage for simple, cost-effective task queuing.

Can I use Service Bus for pub/sub messaging?

Yes. Service Bus topics and subscriptions implement the publish/subscribe pattern. A topic receives messages from publishers, and each subscription gets a copy of every message (or filtered subset). This allows multiple receivers to process the same message independently.

What is a dead-letter queue in Service Bus?

A dead-letter queue is a sub-queue that holds messages that cannot be delivered or processed. Messages are moved there when the maximum delivery count is exceeded, the TTL expires, or the message is explicitly dead-lettered. It allows manual inspection and reprocessing of failed messages.

What is the maximum message size in Service Bus?

For Basic and Standard tiers, the maximum message size is 256 KB. For Premium tier, it is 1 MB. This includes the message body and properties. If you need larger messages, consider using Azure Blob storage and sending a reference in the message.

How does Service Bus handle duplicate messages?

Service Bus can detect duplicates using a user-specified MessageId and a time window (default 10 minutes, configurable up to 7 days). If a message with the same MessageId is sent within the window, it is rejected. This feature must be enabled when creating the queue or topic and is only available in Standard and Premium tiers.

What is the SLA for Azure Service Bus?

Standard tier offers a 99.9% SLA. Premium tier offers a 99.95% SLA. Basic tier has no SLA. The SLA covers connectivity and message processing. For Premium, the SLA is higher due to dedicated resources.

Can I use Service Bus with on-premises applications?

Yes. You can connect on-premises applications to Azure Service Bus over the internet using the connection string. For secure hybrid scenarios, use Azure ExpressRoute or VPN to connect your on-premises network to Azure. The SDKs are available for many platforms.

Terms Worth Knowing

Ready to put this to the test?

You've just covered Azure Service Bus Messaging — now see how well it sticks with free AZ-900 practice questions. Full explanations included, no account needed.

Done with this chapter?