The built-in NestJS RabbitMQ transport does not expose exchange configuration directly. Use @golevelup/nestjs-rabbitmq for advanced exchange patterns. Define exchanges in RabbitMQModule.forRoot(), bind handlers to routing key patterns with @RabbitSubscribe(), and publish with AmqpConnection.publish().
Topic exchanges are the most flexible pattern — prefer them over direct or fanout for complex routing.
@golevelup/nestjs-rabbitmq provides a more complete AMQP integration than the built-in NestJS transport.
Fanout exchanges broadcast to all bound queues regardless of routing key — use for broadcasting events.