xrmq netcore 6 rabbitmq lib async methods 1 connection per application channel pool retry and dlq by default raw or typed producer and consumer consumer background service no magic in declarations