[rabbitmq-discuss] Returned messages when Federation in effect?

Simon MacMullen simon at rabbitmq.com
Thu Jan 3 16:21:21 GMT 2013

On 02/01/13 21:39, Matt Pietrek wrote:
> I imagine this is already answered somewhere, but I can't seem to locate
> a concise answer.
> if a client publishes a messages using a routing key that doesn't
> resolve to anywhere reachable, should the message be returned to the
> client via basic.return?

Yes. Ish.

Since the bindings get propagated upstream, it should be the case that 
if a message won't get routed, you'll find out about it.

However, note that in the single broker / cluster case, this happens 
immediately - as soon as you unbind a queue from an exchange you will 
start to get basic.returns for messages that would no longer be routed. 
Due to the eventually consistent nature of federation, you're not 
guaranteed this will happen immediately.

Also note that there were bugs in the pre-3.0.0 binding propagation code 
which could cause bindings to never be removed upstream.

Cheers, Simon

> Background:
> I'm currently working with 2.8.7 using a topic exchange to route between
> rabbitmq instances. The federation looks like this:
> client1 <--> master <--> client2
> Maxhops is set to 1, and client1 and client2 don't have federation
> between them.
> Each routing key instance looks something like 'client1.xxx.yyy. or
> 'master.xxx.yyy', that is, the routing key contains the broker name that
> the message is intended for.
> If client1 attempts to write a message using 'client2.xxx.yyy', should I
> expect to see the message returned to me or is it just dropped on the floor?
> Thanks,
> Matt
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss

Simon MacMullen
RabbitMQ, VMware

More information about the rabbitmq-discuss mailing list