Bird
Raised Fist0
Azurecloud~20 mins

Service Bus topics and subscriptions in Azure - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Service Bus Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
How does message filtering work in Service Bus subscriptions?

You have a Service Bus topic with multiple subscriptions. Each subscription has a filter rule defined. What happens when a message is sent to the topic?

AThe message is delivered randomly to one subscription.
BThe message is delivered only to subscriptions whose filter rules match the message properties.
CThe message is delivered to the first subscription that matches the filter and then stops.
DThe message is delivered to all subscriptions regardless of filters.
Attempts:
2 left
💡 Hint

Think about how filters help route messages to interested subscribers.

❓ Architecture
intermediate
2:00remaining
Choosing between queues and topics in Azure Service Bus

You want to design a messaging system where multiple independent services receive the same messages for processing. Which Azure Service Bus entity should you use?

AUse a single subscription on a topic and share it among all services.
BUse a queue because it supports multiple consumers receiving the same message.
CUse multiple queues, one per service, and send messages to each queue separately.
DUse a topic with multiple subscriptions so each service gets a copy of the message.
Attempts:
2 left
💡 Hint

Think about how to broadcast messages to multiple receivers.

❓ security
advanced
2:00remaining
Securing access to Service Bus topics and subscriptions

You want to restrict a service so it can only send messages to a topic but cannot receive from any subscription. How do you configure Azure Service Bus access policies?

ACreate a Shared Access Policy with Send permission on the topic only.
BCreate a Shared Access Policy with Listen permission on all subscriptions.
CCreate a Shared Access Policy with Manage permission on the topic and subscriptions.
DCreate a Shared Access Policy with Send and Listen permissions on the topic.
Attempts:
2 left
💡 Hint

Consider the difference between Send and Listen permissions.

❓ Configuration
advanced
2:00remaining
Dead-lettering behavior in Service Bus subscriptions

What happens when a message in a subscription exceeds the maximum delivery count?

AThe message is moved to the subscription's dead-letter queue for later inspection.
BThe message is sent back to the topic for reprocessing.
CThe message is automatically deleted from the subscription.
DThe message is delivered to all other subscriptions.
Attempts:
2 left
💡 Hint

Think about how Service Bus handles messages that cannot be processed successfully.

✅ Best Practice
expert
2:00remaining
Optimizing throughput with Service Bus topics and subscriptions

You have a high-volume messaging system using Service Bus topics and subscriptions. To maximize throughput and avoid bottlenecks, which approach is best?

AUse a single subscription with multiple competing consumers to process messages in parallel.
BUse a single queue instead of topics to simplify processing.
CUse multiple subscriptions with filters and scale out consumers per subscription.
DUse topics with sessions enabled to guarantee message order across all subscriptions.
Attempts:
2 left
💡 Hint

Consider how to distribute load and filter messages efficiently.

Practice

(1/5)
1. What is the main purpose of an Azure Service Bus topic?
easy
A. To send messages to multiple receivers using subscriptions
B. To store data permanently like a database
C. To host web applications
D. To manage virtual machines

Solution

  1. Step 1: Understand the role of a Service Bus topic

    A Service Bus topic acts as a message distributor that sends messages to multiple receivers.
  2. Step 2: Compare other options

    Options B, C, and D describe unrelated Azure services or functions.
  3. Final Answer:

    To send messages to multiple receivers using subscriptions -> Option A
  4. Quick Check:

    Service Bus topic = message distribution [OK]
Hint: Topics distribute messages to many receivers via subscriptions [OK]
Common Mistakes:
  • Confusing topics with queues
  • Thinking topics store data permanently
  • Mixing topics with compute services
2. Which of the following is the correct way to create a subscription under a topic using Azure CLI?
easy
A. az servicebus topic create --resource-group MyGroup --namespace-name MyNamespace --subscription-name MySubscription --name MyTopic
B. az servicebus subscription create --resource-group MyGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription
C. az servicebus topic subscription create --resource-group MyGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription
D. az servicebus create subscription --resource-group MyGroup --namespace-name MyNamespace --topic MyTopic --subscription MySubscription

Solution

  1. Step 1: Identify the correct Azure CLI command structure

    The correct command to create a subscription under a topic is 'az servicebus subscription create' with required parameters.
  2. Step 2: Check parameters and order

    az servicebus subscription create --resource-group MyGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription uses the correct command and parameters: resource group, namespace, topic name, and subscription name.
  3. Final Answer:

    az servicebus subscription create --resource-group MyGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription -> Option B
  4. Quick Check:

    Correct CLI syntax = az servicebus subscription create --resource-group MyGroup --namespace-name MyNamespace --topic-name MyTopic --name MySubscription [OK]
Hint: Use 'az servicebus subscription create' to add subscriptions [OK]
Common Mistakes:
  • Using 'az servicebus topic create' for subscriptions
  • Using invalid 'az servicebus topic subscription create'
  • Incorrect command verbs or missing flags
3. Given the following code snippet, what will be the output?
from azure.servicebus import ServiceBusClient
connection_str = "Endpoint=sb://example.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=key"
topic_name = "mytopic"
subscription_name = "mysubscription"

with ServiceBusClient.from_connection_string(connection_str) as client:
    receiver = client.get_subscription_receiver(topic_name, subscription_name)
    with receiver:
        messages = receiver.receive_messages(max_message_count=2, max_wait_time=5)
        print(len(list(messages)))
medium
A. 2
B. The code will not compile
C. An exception is raised due to missing message processing
D. 0

Solution

  1. Step 1: Understand message receiving behavior

    The code tries to receive up to 2 messages with a 5-second wait. If no messages are available, it returns an empty list.
  2. Step 2: Analyze message processing

    Since no messages are explicitly sent before receiving, the list will be empty, so len(messages) is 0.
  3. Final Answer:

    0 -> Option D
  4. Quick Check:

    Receive without sent messages = 0 [OK]
Hint: Receiving messages without sending returns empty list [OK]
Common Mistakes:
  • Assuming messages exist without sending
  • Expecting exceptions for no messages
  • Confusing receive_messages with peek_messages
4. You have created a subscription but messages are not being received. Which of the following is the most likely cause?
medium
A. The subscription filter is set to exclude all messages
B. The topic does not exist
C. The subscription name is too long
D. The Service Bus namespace is in a different region

Solution

  1. Step 1: Check subscription filters

    If a subscription filter excludes all messages, no messages will be received even if the topic and subscription exist.
  2. Step 2: Evaluate other options

    The topic does not exist would prevent subscription creation; The subscription name is too long would cause an error; The Service Bus namespace is in a different region does not block message reception.
  3. Final Answer:

    The subscription filter is set to exclude all messages -> Option A
  4. Quick Check:

    Filter excluding messages = no messages received [OK]
Hint: Check subscription filters if no messages arrive [OK]
Common Mistakes:
  • Ignoring filters when troubleshooting
  • Assuming region mismatch blocks messages
  • Overlooking subscription existence
5. You want to ensure high availability and ordered message processing in your Service Bus topic subscriptions. Which configuration should you apply?
hard
A. Use multiple topics instead of subscriptions
B. Disable partitioning and use duplicate detection only
C. Enable partitioning on the topic and use sessions on subscriptions
D. Enable auto-delete on subscriptions after 1 hour

Solution

  1. Step 1: Understand partitioning and sessions

    Partitioning improves availability by spreading messages across nodes. Sessions enable ordered processing by grouping related messages.
  2. Step 2: Evaluate other options

    Disabling partitioning reduces availability; multiple topics don't guarantee order; auto-delete removes subscriptions prematurely.
  3. Final Answer:

    Enable partitioning on the topic and use sessions on subscriptions -> Option C
  4. Quick Check:

    Partitioning + sessions = high availability + order [OK]
Hint: Use partitioning for availability and sessions for order [OK]
Common Mistakes:
  • Confusing duplicate detection with ordering
  • Thinking multiple topics replace subscriptions
  • Setting auto-delete too aggressively