Nice post. One way to delegate the Java client redirect is to use Spring AMQP for automatic connection failover. This has been available since 1.1.0 GA in May 2012.<p>For other languages, and in general, we are looking into ways to make the entire reconnect more transparent for cases both with and without intermediaries. Solving this at the protocol level and in the general case is non-trivial - you have to make some assumptions. Do please email the rabbitmq-discuss list if you want to talk about any of this.
You can achieve seamless failover in RabbitMQ by running a clustered rabbitmq node on each of your clients, and configure the client to connect to its local rabbitmq. The cluster will take care of routing the messages to the active mirrored queue. (Note that on the consumer side your code must still properly handle consumer cancel notifications, but that's not too much to ask.)<p>This is architecturally similar to the mongodb/mongos solution described in the article.