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?