Helium

Scaling Urban Airship’s Messaging Infrastructure to Light Up a Stadium in One Second

More than two years ago we embarked on a journey to bring our push infrastructure to Android and tackle the world of high scalability for mobile apps. We’ve detailed some of our past achievements like C500k in past blog entries. We’ve more than quadrupled the performance reported in that post, and have moved on to address the rest of our infrastructure as we march towards supporting billions of connected devices.

We’re now focused on finishing a massive rework of our messaging infrastructure to support our exponential growth in push notification volume. The result will be released with Segments.

We deal with lots of big numbers. Big numbers are often difficult to reason about. As a metaphor, we came up with “light up a stadium in a second” as our throughput goal. Specifically, we now have the capability to send a message in one second to every fan seated in the biggest stadium in college football, Michigan Stadium.

Here’s a high-level look at what we’ll be rolling out:

  • Push Tag & Broadcast Service (codenamed Metalstorm) — Manages associations between applications, devices and tags. This new service supports extremely high push throughput and gives us the ability to perform complex tag queries for apps with hundreds of millions of users across a horizontally scalable architecture.
  • Segments Data Storage (codenamed Penelope) — A customized, distributed database optimized for querying spatial information including custom location data.
  • Message Routing Service (codenamed Gooey ButterCake) — Routing tier that uses a Sort-Merge-Join algorithm to assemble results from queries across multiple heterogeneous systems, for example application tags joined with device location information.
  • Edge Message Delivery Service (codenamed Yaw) — Handles last-mile delivery to third-party platform push providers such as the Apple Push Notification System (APNS) with high throughput and low latency. Yaw manages TLS negotiation, message TTL (time to live) and protocol compliance across hundreds of thousands of connections all performing message delivery.

Helium, our end-to-end message delivery platform for Android devices, is optimized to work with this improved messaging infrastructure and works on an expanding universe of devices including Amazon’s Kindle Fire, Nook, and soon Tizen.

We’re also going to leverage Helium for companies moving away from native apps to HTML5. We built a C++ Helium client library for Linux and are working on Tizen integration (more detail on this effort is here). The new Linux Helium client architecture includes a web runtime plugin that provides JavaScript bindings for easy development of HTML5 browser extensions for push notifications.

How improved is the new infrastructure? Our initial dark launch of the new system delivered broadcast pushes at a throughput of over 100,000 messages per second, with a 90th percentile latency of two seconds to first message delivery. We also delivered tag pushes (one API call with arbitrary tags pushing to one or more devices) at over 100,000 messages per second throughput with 90th percentile latency of two seconds before first push delivery.

What does this mean for apps? If your app has 100,000 users, and the app triggers a push notification, your users will receive that message in less time than it takes you to complete a yawn. If your app has 500,000 users, and the app triggers a push notification, your users will receive that message in less time than it takes you to pour a cup of coffee. More than a million users? Pour that coffee, add sugar and stir.

We’re just getting started. This is the low end of what we can achieve with this architecture and we will continue to invest in throughput and latency improvements. Look for an upcoming blog post on the implementation details or better yet, see us talk about it live at upcoming events such as GLUE Conference and HBaseCon.

We’re still working on rollout plans, but this massive scalability for real-time push will be available for everyone who needs it soon. We’ve already moved many of our largest customers to the new architecture. If you have a need for speed right now, and think your system can handle these performance levels before we add configurable speed throttling, let us know.

We’re also interested in understanding your expectations for push notification delivery. Complete this brief survey to get an Urban Airship t-shirt.

Urban Airship Takes the Stage at the Tizen Developer Conference

Today Urban Airship is delivering a technical session at the Tizen Developer Conference to offer a demo and code-level preview of the upcoming Urban Airship library for Tizen and how the Helium push notification infrastructure will integrate to offer app developers a real-time messaging system.

Tizen is an open source, standards-based software platform supported by leading mobile operators, device manufacturers, and silicon suppliers. The Tizen SDK and API will allow developers to use web run-time and related web technologies to write applications that run across multiple device segments, including smartphone, tablet, smart TV and in-vehicle infotainment.

Push notifications on Tizen are powered by an open-source OS-level push daemon that manages state, user preferences, notification display, power consumption and network access. This daemon allows applications to register for notifications and associate tags or an alias with the device. It also offers an API that will allow developers to specify sounds and use icon badges and other notification types offered by the device.

The Urban Airship library will provide JavaScript hooks into the native push daemon along with drop-in web run-time sample user interface code that developers can integrate into their apps. The library will simplify the integration process and offer additional features that will allow developers to track app opens, time in app, push conversions, opt-in rates and ultimately the impact push notifications have on their users’ engagement.

Screenshots of Urban Airship’s Tizen phone demo including the lock screen, notification center and notification menu

Having delivered 20B push messages to mostly iOS and Android devices, we’ve seen the tremendous lift in app retention and engagement that push messaging delivers and are very excited to bring this functionality to a broader range of devices and consumers. Developers will leverage these real-time alerts to deliver the right information at the right time on the right device to their users.

It’s entirely possible that in the future your refrigerator may message your car’s heads-up display as you approach the grocery store with items you are running low on, which would then be transferred to your smartphone as you pull into the parking lot and turn off your car.

We’re Hot For Push On The Kindle Fire

Amazon shipped their first Kindle Fires eight weeks ago and since then we’ve seen a lot of interest in the platform from our customers. Consumers are jumping in too, making the Kindle Fire the best-selling product across all of Amazon.com since it became available. We’re also excited about the Kindle Fire, and even more excited to let you know that Urban Airship’s Helium push notifications for Android are already deployed on tens of thousands of devices: it just works.

Over the weekend we had several customers go live on the Fire using our Helium push notifications. Glu Mobile is just one of our customers who are using our push notifications for Android in all of their games for the Fire. When we asked Glu if they did anything special to activate push in their games for the Kindle Fire, Mike DeLaet, VP of Sales & Marketing said, “We just integrated the Urban Airship SDK into these titles like we do for all of our titles, which allows us to utilize push notifications on the Kindle Fire.” Our customers depend on Push to drive engagement and provide the best user experience possible for their applications. With Helium they can do that for the Kindle Fire today.

A little background: the Fire is an Android device with a few key differences. It is missing Google’s Mobile Services (Android Market, C2DM, Google IAP, etc). Additionally, your app cannot require a gyroscope, camera, WAN module, Bluetooth, microphone, GPS, or micro-SD to function. Beyond that, it’s Android 2.3.4 with a new screen size and functions just like any WiFi-connected Android device.

We know that in the world of mobile phones, tablets, PC’s, and other IP connected devices, powerful engagement tools are a requirement for success. We’re continually working to extend our services to any device and as many platforms as possible. But device and platform support only gets you so far–and that’s where our tools come into play. Urban Airship enables you to effectively address and engage with your application audience. With our recent acquisition of SimpleGeo, the future holds many exciting additions to our products, like enabling audience segmentation on a local level for the Kindle Fire and beyond. These are exciting times and we’re just scratching the surface on what we can do.

For more details on setting up an app for the Kindle Fire and selling it in the Amazon App Store, see their Developer FAQ. If you are interested in using Helium to power push on a Kindle Fire or any other Android device, check out our Pro Plans. And finally, if you want to make addressing your Kindle Fire audience easier, take a look at our FAQ on setting tags for your Kindle Fire app installations.