An exchange's type and its bindings implement the routing logic. Direct exchanges route to bound queues, streams, or exchanges using exact equivalence of the binding's routing key. Fanout exchanges route a copy of every message to every bound queue, stream, or exchange and the routing key is completely ignored. Topic exchanges pattern-match the message routing key against the binding pattern, where * matches exactly one word and # matches zero or more words, so a binding pattern of # makes the topic exchange act like a fanout. Headers exchanges instead use optional binding arguments. The default exchange is a predeclared direct exchange: when a queue is declared, RabbitMQ automatically binds it to the default exchange with the queue name as the routing key, which makes publishing directly to a queue by name convenient. It is not meant to be used as a regular exchange with explicit bindings; declare a separate direct exchange for custom topologies. Bindings inherit durability from their source exchange and destination, and support for semi-durable and fully transient bindings will be dropped in the future. Scope: RabbitMQ. Reviewed October 4, 2026.
Exchange types and routing
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- www.rabbitmq.com
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.