Shouldn't `MessageBroker` and `MessageBroker::consumeMessage()` be able to take care of the exchange, queue, and consume setup?