AZ-305 Question 178
Select 2You are designing an event-driven architecture for an e-commerce platform that processes new orders from a microservices-based solution. The platform must route order confirmations to multiple downstream services, including inventory management and shipping. Real-time notification is critical to ensure prompt updates. Which TWO approaches should you recommend?
- A
Leverage Azure Event Grid to publish order events, and subscribe the inventory and shipping services to the topic for near real-time updates.
- B
Use Azure Functions with an Event Grid trigger to handle events, generating shipping labels and updating inventory in separate functions as needed.
- C
Implement a single Azure Service Bus queue for all services, requiring each service to sequentially dequeue and process order events in turn.
- D
Store order data in Azure Cosmos DB, then have each downstream service periodically poll the database for new orders.
Show answer and explanation
Correct answers: A, B
Explanation
In modern event-driven architectures, Azure Event Grid is often used to fan out critical events in near real-time to multiple subscribers without the overhead of sequential processing. Azure Functions triggered by Event Grid further reduces complexity by providing serverless, on-demand execution for each event. This approach follows recommended best practices for loosely coupled, scalable solutions. Refer to Azure Event Grid documentation (https://docs.microsoft.com/azure/event-grid/) and Azure Functions documentation (https://docs.microsoft.com/azure/azure-functions/) for more details.
- A. Correct.
Option 1 is correct. Azure Event Grid is built for robust, event-driven architectures. By publishing order events to Event Grid, you can subscribe inventory and shipping services independently, achieving near real-time notifications.
- B. Correct.
Option 2 is correct. Azure Functions, triggered by Event Grid events, is a common serverless approach. Each microservice-related function can react to new orders without complex code for message routing or scheduling.
- C. Incorrect.
Option 3 is incorrect. A single Azure Service Bus queue processes messages in a single pipeline. This approach is more suitable for sequential processing rather than broadcasting real-time events to multiple consumers simultaneously.
- D. Incorrect.
Option 4 is incorrect. Polling a database for new orders increases latency and complexity. It also defeats the purpose of a push-based, event-driven architecture where services can react immediately to new events.