So far, all the messaging interactions that you've learned about were one way: flowing from message publishers to consumers. However, what if the consumer would like to let the publisher know that processing is complete? If the consumer were to act as a service and the publisher as a client, you would have to find a way to route a response back to the consumer. If you've been toying with these questions, then you've arrived at the right chapter! By the end of it, you'll know everything you need to roll out a message-driven, service-oriented architecture. Loose coupling and its related benefits in scalability and graceful degradation will be no mystery to you.
In this chapter, we will discuss the following topics:
Request-response interaction with reply-to queues
Exclusive queues
Advanced routing with headers exchange