I&#39;m new to XMPP but am very excited about the possibilities.&nbsp; We are designing an application based on XMPP and want to be sure we are leveraging the appropriate technologies and standards in the correct places, in order to ensure scalability as well as future-proof the app, as much as is possible.&nbsp; My question, at its most basic is what is the recommended approach for handling the following scenario:<br>
<br>(1) Users starts session<br>(2) Users submits message (via HTTP or XMTP - doesn&#39;t really matter)<br>(3) Server picks up message (via asynchronous MQ or via XMPP component - doesn&#39;t really matter....I think)<br>
(4) Server needs to flexibly broadcast message out to a large number of users but (and this is key) this list of users needs to be dynamically filtered <br><br>I originally was hoping PubSub would work but that seems to rely on a fixed node with a fixed set of subscribers.&nbsp; In my scenario, I may have fixed nodes but I don&#39;t want to push a message out to all subscribers - just a dynamically chosen subset of those (based on some filter parameters).&nbsp; Some options I&#39;ve considered include:<br>
<br>* Pushing out the messages to all members of the node and letting a custom XMPP client filter them.&nbsp; This makes the server simple but results in possibly many messages being sent to many &quot;receiving&quot; clients when a subset would have worked.&nbsp; Considering there may also be a large volume of user-submitted messages coming in to trigger this, minimizing the number of outbound messages is critical from a scalability standpoint.<br>
<br>* Not sure if this is possible but in the routing chain could we build a component that would intercept the pubsub messages and apply the filtering there?&nbsp; Not sure if it&#39;s possible to do this generally for &quot;all broadcast recipients&quot; or if the code would have to be called once for every message recipient which would then again kill performance/scalability as the load grows.<br>
<br>* The inbound item picked up off the queue could also be used to determine the list of valid recipients, and then.....I assume....loop through them one at a time and send them individiual messages??&nbsp; Again, seems to work at a small scale but maybe not at a large scale?&nbsp; Is there a way to build a dynamic list of users and have XMPP send messages to that list?&nbsp; Are there practical limitations on handling the size of this list or are there &quot;sharding&quot; approaches for big XMPP broadcasts like this?<br>
<br>Any advice or lessons learned by XMPP veterans would be greatly appreciated.&nbsp; I apologize in advance for the lengthy message.<br><br>Thanks!<br><br>Bryan Morgan<br>