I recommend that you watch how RabbitMQ handles RPC . Despite the fact that AMQP differs from MQTT, quite a lot is transferred to a high level.
You do not need to create ephemeral "Reply To" queues with correlation identifiers using message headers. Or as @ralight said that there are two lines open for each client. The problem with the two queues, open for each client, is of course ordered, and therefore you will have to use correlation identifiers, as well as a buffer and a route inside (or drop to the correlation identifier if your application is synchronous).
source share