I have three microservices - Service A, B and C. Service A should call B and C asynchronously, A should build the response based B and C responses.
I am using Rabbit MQ for async ipc.
Tried RabbitTemplate's convertSendAndRecieve with direct-replyTo option to consume, which makes the current processing thread wait/block on the async call to complete which makes it synchronous.
I wouldn't like to use the convertAndSend and let Service A listen on the reply queue and process based on correlation id as there would be thousands of responses in the reply queue and mapping the messages based on correlation id results in poor performance.
Creating separate queues for each session is not an option either due to its own caveats (getting acknowledgement from all clusters on new queue creation impacts the performance too)
Sorry if this problem has been solved before, I couldnt get much help on this on internet. Any help would be appreciated.