Do you need to do all of the exchange, queue and binding setup here? Wouldn't `MessageBroker->publishMessage()` handle that? I imagine this class would only need to package up the data that would need to get sent to the message broker, and then our MessageBroker class would handle all of the exchange and queue logic.