A retail platform processes multi-step order workflows. Each order generates a conversation of related messages (order created, payment authorized, items reserved) that must be processed in order per OrderId across multiple subscribers. When a worker processes an 'order created' message, it must atomically send two commands to downstream services or roll back if processing fails. Poison messages must be isolated without losing them. Which messaging design should you recommend?
Choose an answer
Tap an option to check your answer.
Correct answer: Azure Service Bus topic with sessions enabled (sessionId=OrderId); create subscriptions for each downstream service; use Service Bus transactions to complete the incoming message and send the two outbound messages in the same transaction; rely on the dead-letter subqueue on subscriptions for poison messages..
Why this is the answer
The correct option leverages Azure Service Bus sessions to ensure messages for a given OrderId are processed in order by a single subscriber, fulfilling the "in order per OrderId across multiple subscribers" requirement. Service Bus transactions guarantee atomicity for completing the incoming message and sending outbound commands, addressing the "atomically send two commands or roll back" need. The built-in dead-letter subqueue effectively isolates poison messages without loss. Incorrect options: Azure Service Bus queue without sessions: Lacks guaranteed in-order processing per OrderId. Manual compensation is complex. Azure Storage Queue: Does not support sessions or transactions, and its dead-lettering capabilities are not as robust. Azure Event Grid topic: Designed for event distribution, not message ordering or transactional processing. At-most-once delivery is unsuitable for critical order processing. Azure Service Bus topic without sessions: Cannot guarantee in-order processing for a specific OrderId. Disabling dead-lettering is detrimental for poison message handling.
Pass your exam — without the endless answer hunt
Get every verified question and explanation for this exam in one place, and save hours of prep. 1,000+ certifications · 20+ languages · free to start.
Pass your exam faster → No card needed