Hi,<br><br>I have a usage scenario that I am having a bit of trouble translating into exchanges, queues and bindings. This is using the Erlang client.<br><br>I have a stream of messages that have the identifying characteristics &lt;type&gt; and &lt;id&gt;. I would like to process these such that I can recognise a particular &lt;type&gt;=START to indicate that all messages related to &lt;id&gt; that follow are to be processed in some fashion by a new Erlang process.<br>
<br>So, I declare a topic exchange and bind a queue with the key &#39;START.*&#39;. I now get my &quot;starter&quot; messages, nice. My naive idea was to have this starter create a new queue and bind it with key &#39;*.ID&#39; and then have a new Erlang process work on the messages arriving there.<br>
<br>What I am trying to get my head around is, how can I quarantee that any messages arriving for the new ID don&#39;t get lost while my starter process is setting stuff up? For example, a message with key START.27 arrives, the starter now sets up the new queue and binding against &#39;*.27&#39;, but before that is complete, a message with key X.27 got published (and potentially lost).<br>
<br>One way I could see getting this to work, would be to have my starter process read _all_ messages (not just the START ones), synchronously starting the sub processes, and passing any non-starter messages to another exchange where the sub-processes have bound their queues.<br>
<br>Somehow this &quot;pass it along&quot; approach seems a bit clunky to me. Is there a more elegant way? Or, alternatively, does RabbitMQ Erlang Client have some nice and easy functions to &quot;consume message from here, look at it, and if not for me, publish it to there&quot;? It looks to me as if I need to transmit the RoutingKey as part of the message, as it doesn&#39;t seem to be part of the #content{} structure. But maybe I&#39;ve missed something.<br>
<br>Thanks for any thoughts,<br>Robby<br><br>