<div dir="ltr">Hello,<div><br></div><div>I was wondering if someone could please advise me on the best approach to accomplish the following:</div><div><br></div><div>I essentially want to federate an exchange such that the "upstream" exchange name is different than the exchange name that the downstream queues bind to.<br>
</div><div><br></div><div>Maybe a use case would explain it better... </div><div><br></div><div>Imagine Broker A, Broker B, and Broker C. Each federates a direct exchange based on their name (for example, "A.requests", "B.requests", "C.requests"). Within each broker, however, I don't want consumers to need to know the broker name-- they should be able to bind their queues to (direct) exchange "Incoming.requests" and receive messages to "A.requests", "B.requests", or "C.requests" respectively.</div>
<div><br></div><div>The best I can come up with is to actually make the federated exchanges be "fanout" exchanges, then within each broker, create the local "Incoming.requests" direct exchange, and use E2E bindings to bind the "Incoming.requests" to the federated exchange (for example "A.requests").</div>
<div><br></div><div>Is this how you would recommend it? Does this defeat RabbitMQ's smart routing? (will it cause all messages to be sent to the federated exchange since it is fanout, or will it be smart enough to consider the queue bindings on the E2E bound 'Incoming.requests' direct exchange?)</div>
<div><br></div><div>If I'm not making sense, feel free to ask me to clarify.</div><div><br></div><div>Thanks!</div><div>Chris</div></div>