decoupled rabbitmq