<div>Folks,</div><div><br></div><div>I&#39;m new to AMQP and RabbitMQ and had some questions about how I should</div><div>go about modeling the following problem with exchanges and queues:</div><div><br></div><div>A. I have consumers with a routing tag (not unique -- multiple</div>
<div>   consumers may have the same routing tag)</div><div><br></div><div>B. Messages are enqueued with a routing tag.</div><div><br></div><div>C. Each message should be delivered only once to a consumer among the</div><div>
   set of consumers for which the function</div><div>   </div><div>      canConsume?(consumerRoutingTag, messageRoutingTag)*</div><div><br></div><div>   is true.</div><div><br></div><div>* canConsume?(aTag, msgTag) = ((aTag &amp; msgTag) == msgTag)</div>
<div><br></div><div><br></div><div>How do I go about configuring my exchange and queues? Do I...</div><div><br></div><div>1. Create a queue for each consumer and create a rabbit_exchange_type</div><div>   that only delivers to a queue for which canConsumer? is true</div>
<div><br></div><div>2. Create a queue for each consumerRoutingTag (multiple consumers can</div><div>   end up on the same queue) and create a rabbit_exchange_type that</div><div>   only delivers to a queue for which canConsumer? is true</div>
<div><br></div><div>3. Have a single queue and then somehow scan each consumer for which</div><div>   canConsumer? is true for each incoming message and then deliver to </div><div>   that consumer?</div><div><br></div><div>
<br></div><div>I would appreciate any guidance here on how to route messages most</div><div>effectively to consumers given the above scenario. Further, if I write</div><div>my own rabbit_exchange_type, is there support in RabbitMQ for helping</div>
<div>me fairly distribute messages across the candidate lists? Would the</div><div>rabbit_exchange_type be the same as</div><div> </div><div><a href="https://github.com/rabbitmq/rabbitmq-external-exchange">https://github.com/rabbitmq/rabbitmq-external-exchange</a></div>
<div><br></div><div>Thanks a bunch!</div>