I'm building an app where producers need to have messages routed to consumers. The producers are web app instances and the consumers are stateful backend servers that are responsible for processing messages tagged with a specific label. Deciding which consumer is responsible for a specific label is decided by a third app (called the "broker").&nbsp;A consumer is responsible for one or more labels and no two consumers are responsible for the same one. The&nbsp;responsibilities&nbsp;can change over time depending on the load or availability of backend servers.&nbsp;Each consumer has one queue and its labels are set using bindings with the routing key as the label.<div><br></div><div>Now I'm wondering who should declare the bindings. In all RabbitMQ examples I have seen and other apps I have worked on, the bindings are declared by the consumer. To follow that convention the broker would need to notify the backend servers for them to declare the correct bindings. Or I'm wondering if the broker could do it, and if so, are there any drawbacks?</div>