On Wed, Aug 12, 2015 at 9:22 AM, Lukáš Fryč <lukas@fryc.eu> wrote:
Hi guys,


me and summersp have discussed how JMS should be used to route messages.


Current implementation loads tokens and conditionally sends either message with registration IDs or topics.

There are two things yet to be solved:
  •  topics can be used up to 1 million registrations, otherwise you have to fall back to enumerating registration IDs
  • implementation with one sender (GCMPushNotificationSender) is suboptimal
    • the utilization of the topics can be increased by prioritizing topic message sending first (covering multiple, potentially thousands registrations)
    • followed by sending registration IDs out

That's why I suggested to split implementation to two JMS queues talking to two sender impls (e.g. GCMTopicSender and GCMRegistrationIdsSender).
  • first we send out topic based messages (for efficiency)
  • we collect those topics that fail and resend them for processing as registration IDs (fail over)
    • registration ids sending can start in parallel, but it can't end until we sent out all topics
Additionally we get an ability to configure these two message routes individually on the JMS level (better utilization, transact-ability, fail over).


What do you think?
Since we discussed this yesterday I am of course +1 :-p 


Cheers,

~ Lukas

_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev