[aerogear-dev] Feedback for aerogear-unifiedpush-server - personalized push notifications case
Apostolos Emmanouilidis
aemmanou at redhat.com
Fri Sep 27 04:35:09 EDT 2013
On Fri, 2013-09-27 at 09:49 +0200, Sebastien Blanc wrote:
> On Fri, Sep 27, 2013 at 9:12 AM, Apostolos Emmanouilidis
> <aemmanou at redhat.com> wrote:
>
> I received some feedback for the aerogear-unifiedpush-server.
>
> The case is:
>
> Company X would like to create a personalized push
> notifications campaign for Y hundred thousands
> customers/clients. Personalized means that each client/device
> should receive a unique message. The messages are
> automatically produced from rules defined in a CRM system, but
> this is something which doesn't affect our implementation.
>
> Currently, our selective send method is able to send one
> message to a selected list of clients. In cases like the above
> one, this translates into Y hundred thousands calls of the
> aerogear-unifiedpush-server selective send method. The
> question is whether we could change the signature of the
> selective send method and allow to pass an array of messages
> or not.
>
> In my understanding, the advantages/disadvantages of a such
> change are similar to the advantages/disadvantages of a
> service according its level of granularity.
>
>
>
>
> This is indeed an interesting use case ! And as you said we should
> really consider the impact of sending an huge message ( + UPS
> refactoring) Vs Sending hundred thousands messages.
>
>
>
> But considering "the big send" option and thinking aloud, even if it
> the messages are personalized, probably most of the message will be
> identical with just some variables changing. We could have a message
> template, and the map of clients (alias in UPS terminology) would
> contain values for variables, pseudo code :
>
>
> {"message":"You won <amount> with this
> <stock>","alias":{["bob":{"amount"=50,"stock"="Shell"} , "john":{"amount"=120,"stock"="Esso"}]}
>
>
> This will limit the size of the "big send" but implies some logic
> processing on the UPS side which is maybe not the best idea (even if
> this templating is generic and not related to any business logic).
>
>
>
> Fine Grained
> + simplicity and less business logic on server side
> + less amount of data exchanged between client/server
> - a lot of interactions between client/server
> - more interactions = more network overhead
> - complex client side
> Why ?
If the question goes to the "complex client side" point, I guess that a
more sophisticated solution is required on the client side than creating
a loop and "firing" the ag-ups :)
>
> Coarse Grained
> + less interactions between client/server
> + less network overhead & possibility of re-using the same
> network connection to send messages to the Push Networks (at
> least for APN)
> + simple client side
> - much data exchanged in each interaction between
> client/server
> - complex server side
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20130927/ef23cf95/attachment-0001.html
More information about the aerogear-dev
mailing list