MuleSoft Certified Integration Architect – Level 1 — Question 34
An Order microservice and a Fulfillment microservice are being designed to communicate with their clients through message-based integration (and NOT through
API invocations).
The Order microservice publishes an Order message (a kind of command message) containing the details of an order to be fulfilled. The intention is that Order messages are only consumed by one Mule application, the Fulfillment microservice.
The Fulfillment microservice consumes Order messages, fulfills the order described therein, and then publishes an OrderFulfilled message (a kind of event message). Each OrderFulfilled message can be consumed by any interested Mule application, and the Order microservice is one such Mule application.
What is the most appropriate choice of message broker(s) and message destination(s) in this scenario?
Answer options
- A. Order messages are sent to an Anypoint MQ exchange OrderFulfilled messages are sent to an Anypoint MQ queue Both microservices interact with Anypoint MQ as the message broker, which must therefore scale to support the load of both microservices
- B. Order messages are sent to a JMS queue OrderFulfilled messages are sent to a JMS topic Both microservices interact with the same JMS provider (message broker) instance, which must therefore scale to support the load of both microservices
- C. Order messages are sent directly to the Fulfillment microservices OrderFulfilled messages are sent directly to the Order microservice The Order microservice interacts with one AMQP-compatible message broker and the Fulfillment microservice interacts with a different AMQP-compatible message broker, so that both message brokers can be chosen and scaled to best support the load of each microservice
- D. Order messages are sent to a JMS queue OrderFulfilled messages are sent to a JMS topic The Order microservice interacts with one JMS provider (message broker) and the Fulfillment microservice interacts with a different JMS provider, so that both message brokers can be chosen and scaled to best support the load of each microservice
Correct answer: B
Explanation
The correct answer, B, is appropriate because it utilizes a JMS queue for Order messages and a JMS topic for OrderFulfilled messages, allowing for proper scaling with a single JMS provider. Option A is incorrect because Anypoint MQ is not specified as the most suitable broker in this context. Options C and D suggest multiple brokers, which complicates the architecture unnecessarily when a single provider can suffice.