Ask HN: Why AWS SNS for mobile push notifications?
We currently use a single, simple function that sends our push notifications direct to Apple servers. I'm just curious as to the benefits of using SNS or any of the other similar services. I don't really get the "scalability" mantra since it seems that sending to the SNS api is just as taxing on the server as sending direct to Apple. What am I missing?
4 comments
I haven't used SNS myself, but as I've understood it, it's possible to make one request to SNS which in turn sends notifications to all the users of your application. So if you have many users and send many non-personalised messages, you may make fewer requests.
I also think a selling point is the fact that you can send messages to multiple Push-services (Apple, Google, Windows Phone etc) using one single API, including SMS and email.
I also think a selling point is the fact that you can send messages to multiple Push-services (Apple, Google, Windows Phone etc) using one single API, including SMS and email.
Thanks very much. That clarifies things for me. I had read in their literature that being able to send to lots of devices was one of the reasons, but doing so in your own code is not difficult. But after searching around the web to find out how, I am seeing a lot of people with inconsistent errors and bugs with their code, so I think that answers my question.
I would also add that it appears SNS offers analytics on delivery rates for push notifications. Which I didn't think was possible since the Apple API doesn't seem to respond back with success or fail.
I would also add that it appears SNS offers analytics on delivery rates for push notifications. Which I didn't think was possible since the Apple API doesn't seem to respond back with success or fail.
^ I think this answers sums up the SNS value prop well.
1. It's a managed service you don't have to run or maintain.
2. Aggregation across multiple messaging channels. Your code can become more agnostic.
3. It's very easy to integrate in a side project where for example you have just one node running on a PaaS for your app, etc.
1. It's a managed service you don't have to run or maintain.
2. Aggregation across multiple messaging channels. Your code can become more agnostic.
3. It's very easy to integrate in a side project where for example you have just one node running on a PaaS for your app, etc.
Yes, these type of services help get around the headache of supporting multiple platforms / versions of the same platform, and their different notification APIs.