Core message patterns: one message/two services

In this pattern, the message is synchronous. The sending microservice expects an immediate response. The message is also consumed, meaning that only one microservice generates a response to the message. This common case is analogous to the HTTP request/response model, with point-to-point communication between microservice instances.
Example: Sending a “command” message.

The message is synchronous, with at least one immediate response expected. However, in this case the message is observed, not consumed, meaning that some subset of the recipients generates responses, rather than just one. The mechanism that delivers the same message to multiple recipients is implementation dependent and should be abstracted away by your messaging layer.
Example: Generating multiple recommendations.