<div>Here is a little about the setup I have currently. (&nbsp;<a href="http://stackoverflow.com/questions/14594569/rabbitmq-implementation">http://stackoverflow.com/questions/14594569/rabbitmq-implementation</a>&nbsp;)</div><div><br></div><div>- REST API to push ( POST ) data into a queue</div><div>- The Queue has a Consumer that's always running and Produces to en Exchange</div><div>- The Exchange routes to several other Queues ( like 20+ )</div><div>- Each of the ( 20+ ) Queues does a specific task ( The Consumers always runs as well )</div><div>- Cron job runs to check if all the ( 20+ ) Tasks are completed and Produces to yet another Queue</div><div><br></div><div>I'm not sure I like the Consumers running all the time as each Consumer utilizes around 300MB of Ram ( I think it's MBs, it's not in front of me at the moment ) and I'm looking for another implementation.</div><div><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; M &lt;-- Message coming from REST API</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; +-First Queue</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; | &lt;-- The Exchange</div><div>&nbsp; &nbsp; &nbsp; &nbsp;/|\</div><div>&nbsp; &nbsp; &nbsp; / | \</div><div>&nbsp; &nbsp; &nbsp;/ &nbsp;| &nbsp;\ &lt;-- bind to multiple queues ( 20+ )</div><div>&nbsp; &nbsp; Q1 &nbsp;Q2 &nbsp;Q3 &lt;-- Each Queue is a task that must be completed</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; | &lt;-- CRON runs to check if all queues above have completed</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; Q4 &lt;-- Queues 1,2 and 3 must finish first before Queue 4 can start</div><div>&nbsp; &nbsp; &nbsp; &nbsp; |</div><div>&nbsp; &nbsp; &nbsp; &nbsp; C &lt;-- Consumer&nbsp;</div><div><br></div><div>I the related question below it was suggested to use RPC but the problem with this is the RPC ( to my understanding ) Will have multiple instances. This is a resource intense process as is and I think by adding the RPC calls it will just bog down the server and then become unresponsive ( Please correct me if I'm wrong ).</div><div><br></div><div>Another approach was to use the Aggregator pattern&nbsp;</div><div><br></div><div>&nbsp;- http://www.eaipatterns.com/Aggregator.html</div><div><br></div><div>Which looks exactly what I need but I found the documentation limited. Has anyone done this pattern?&nbsp;</div><div><br></div><div>My question is I'm not happy with how it's currently implemented and I'm looking for ways to improve the process. I'm looking to either get rid of the CRON, Implement a new Pattern and Not have the Consumers run all the time.</div><div><br></div><div>The process currently also only supports a single instance of each consumer. It can have multiple consumers but how we have implemented it we only wanted one at the time.</div><div><br></div><div>This is implemented in PHP, Symfony2 Framework using the RabbitMQBundle</div><div><br></div><div>Related Question:</div><div><br></div><div>&nbsp;- http://stackoverflow.com/questions/13861459/rabbitmq-wait-for-multiple-queues-to-finish</div><div><br></div><div>&nbsp;</div>