I ran into a situation like this before. I've used two topics to handle the scenario. 1st topic is used for publish and the second topic is used for receipts. Here's the flow I had in my application.
- Sender posts a 'Request' message to 1st topic.
- Listener receives the message as it listens to Message<Request> object.
- After processing the message Listener sends Message<Ack> object to 2nd Topic.
- Sender in turn listens to Message<Ack> object recieves it. I've added identifiable information about the listener to find out which listeners ultimately got my request Message<Request>.
I hope it solves your problem..