Within days of each other, Microsoft and Amazon Web Services (AWS) released mobile-friendly notification services aimed at developers. Both services make it possible to quickly and cheaply broadcast millions of messages to devices of all kinds. While similar on the surface, each service offers their own unique capabilities.
Push notifications are an increasingly important part of a mobile developer’s toolkit, but implementing this for a wide range of devices can be difficult. In a blog post announcing Amazon SNS support for push notifications, the AWS team described the problem that mobile developers face.
Implementing push notifications can be tricky, especially when you target multiple platforms such as iOS, Android and Kindle Fire. Many customers do it by integrating directly with the push relay services that Amazon, Apple, and Google provide for their devices. These services each use different, platform-specific APIs, and you have to manage things like token updates or token invalidation by the services, along with token feedback when users upgrade their devices or delete your app. Also, the nature of mobile app distribution is such that successful apps can become popular almost overnight. Scaling quickly from zero to millions of devices, and tens of millions of daily notifications, can be challenging.
To combat this challenge, AWS extended their Amazon SNS service with a Mobile Push feature that gives developers a single API to broadcast messages to Amazon Kindle Fire, iOS, and Android devices. It offers an abstract interface on top of the underlying notification services provided by Amazon (via ADM), Google (via GCM), and Apple (via APNs). The service supports either broadcasting to every connected device (through SNS topics), or targeting an individual device. It also lets developers send platform-specific messages tailored to each device type. Why extend Amazon SNS instead of creating an entirely new service? AWS CTO Werner Vogels explained the reasoning in a blog post.
We chose to enhance Amazon SNS instead of building a separate mobile notification service because Amazon SNS was designed from day 1 to support multiple protocols and delivery methods (Email, SMS, SQS, HTTP etc.) and already operates at a massive scale delivering billions of notifications every day over these delivery methods.
By leveraging the scale of AWS and the existing SNS technology, we are able to offer the same cost effective prices for Mobile Push that we offer for Amazon SNS.
In typical AWS fashion, the documentation and SDKs have already been updated to reflect the new capabilities of SNS.
Microsoft is also making noise in the mobile notification space with its new Windows Azure Notification Hubs. In preview since January of this year, the Notification Hubs service lets developers send push notifications to Windows 8, Windows Phone 8, iOS and Android devices. Microsoft VP Scott Guthrie echoed the mobile development challenges that were highlighted in the AWS announcement.
Push notifications are a vital component of mobile applications. They’re the most powerful customer engagement mechanism available to mobile app developers. Sending a single push notification message to one mobile user is relatively straight forward (and is already easy to-do with Windows Azure Mobile Services today). But sending simultaneous push notifications in a low-latency way to millions of mobile users, and handling real world requirements such as localization, multiple platform devices, and user personalization is much harder.
Notification Hubs support platform-specific and localized notification templates, and make it easy for subscribers to set “tags” of interest in particular topics. Scaling is done in the Windows Azure Management Portal by defining the number of “units” to employ, with up to 100,000 devices supported per unit. Microsoft has updated their documentation and provide device SDKs for each supported platform.
Both AWS and Microsoft put the spotlight on case studies that showcased their new platforms. Werner Vogels explained how mobile application performance management provider Crittercism adopted SNS with Mobile Push.
Developers tell us that managing push notifications at large scale distracts them from building great apps. In some cases, this work is complex enough that it actually limits what the developers are willing to offer to their customers. For example, Crittercism tells us that delivering timely push notifications became so burdensome as they grew to touch 600 million devices, that they chose to stop offering push notifications in the past. They are now able to offer push notifications to their customers again using Amazon SNS and can notify tens of millions of users in a matter of seconds about critical app performance issues.
Not to be outdone, Scott Guthrie described how the Bing News application that ships with every Windows 8 device is powered by Windows Azure Notification Hubs.
The Bing News app needs the ability to notify their users of breaking news in an instant. This can be a daunting task for a few reasons:
- Extreme scale: Every Windows 8 user has the News app installed, and the Bing backend needs to deliver hundreds of millions of breaking news notifications to them every month
- Topic-based multicast: Broadcasting push notifications to different markets, based on interests of individual users, requires efficient pub sub routing and topic-based multicast logic
- Cross-platform delivery: Notification formats and semantics vary between mobile platforms, and tracking channels/tokens across them all can be complicated
Windows Azure Notification Hubs turned out to be a perfect fit for Bing News, and with the most recent update of the Bing News app they now use Notification Hubs to deliver push notifications to millions of Windows and Windows Phone devices every day.
How do these two offerings stack up? This simple table points out a few key attributes.
Amazon SNS |
Windows Azure Notification Hubs |
|
Supported Platforms |
Amazon, iOS, Android | Windows 8, Windows Phone 8, iOS, Android |
Volume Limits |
An account can have up to 3000 topics, and a topic can have up to 10,000 subscriptions, so 30 million endpoints can receive an identical message. More can be subscribed through direct addressing. | Possible to scale to 2,500 units per subscription. Equates to 250 million devices and billions of operations per month. |
Message Customization |
Supports platform-specific templates. | Local language and device-specific templates can be configured. |
Targeted Notifications |
Can do direct addressing to target individual device, or use Topics to connect those with a particular interest area. | “Tagged” messages are routed to a subset of devices. Can also route to individual devices. No service configuration needed. |
Monitoring Capabilities |
Handful of metrics available through Amazon CloudWatch. | Almost 50 metrics that track notifications and delivery. |
Pricing |
1 million mobile notifications(64kb) for free, and $0.50 per million after that. | Free tier supports 500 devices and 100k notifications per month. Also basic and standard pricing for more scale. |