Use Transport.RMQ in both NestFactory.createMicroservice() and ClientsModule.register(). Set noAck: false for manual acknowledgement so messages are not lost if the consumer crashes. Set prefetchCount to control concurrency and queueOptions.durable: true so messages survive RabbitMQ restarts.
noAck: false — enables manual acknowledgement; the handler must ack/nack via RmqContext.
prefetchCount — controls concurrency; limits how many unacknowledged messages a consumer holds at once.
durable: true on the queue ensures messages survive RabbitMQ broker restarts.
urls accepts an array — amqp-connection-manager round-robins and reconnects automatically.
Use persistent message delivery (deliveryMode: 2) on the publisher side for full durability.