Enable the relevant plugin on both brokers: rabbitmq-plugins enable rabbitmq_federation (or rabbitmq_shovel)
For federation: define an upstream via policy pointing at the remote broker URI; messages are pulled from the upstream only when there is local consumer demand — federation is demand-driven
For shovel: configure a static or dynamic shovel that continuously moves messages from a source queue on broker A to a destination exchange on broker B regardless of downstream consumers
Use federation when bridging geographically distributed clusters for pub/sub or work-queue distribution where you want topology transparency and auto-scaling of message flow with demand
Use shovel when you need a reliable one-way message pipeline between two specific endpoints, such as aggregating messages from multiple regional clusters into a central analytics broker
Verify bridge state: rabbitmqctl eval 'rabbit_federation_status:status().' for federation or rabbitmqctl shovel_status for shovel
Known gotchas
Federation is exchange-level or queue-level and creates a logical link that respects AMQP routing; shovel operates at the queue level and re-publishes messages as new messages, losing original message IDs and some headers
Shovel re-delivery guarantees depend on publisher confirms being enabled; without confirms a shovel can drop messages during a connection failure between consume and publish
Federation links can form cycles if two brokers federate each other's same-named exchanges; set the max-hops policy argument to limit hop count and prevent message loops
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp