Alternate Exchanges
Apart from user-defined exchanges, each cluster of RabbitMQ will define an Alternate Exchange.
Alternate Exchanges are very useful in scenarios where you need to handle orphan messages:
I get messages in my exchange that my exchange is unable to route. This may be because the queue is not available (yet), or the message was accidently published. How should I handle these kind of messages?
In data Bus, we will specify the Alternate Exchange using policies. The Alternate Exchange will be of the Topic Exchange type and will be attached to each of the underlying Exchanges. This will keep things consistent and the client doesn't have to worry about messages that need to be handled by Alternate Exchange.
In addition, there will be queues listening on this exchange based on the routing information.
Here is the diagrammatic representation of the Alternate Exchange and how it is used: