Push Notifications to Millions of Android Devices using MigratoryData WebSocket Server

At the request of a new Fortune Global 500 (South Korea-based) customer, with whom we have recently signed an enterprise-wide license with premium support for MigratoryData WebSocket Server, we have developed a new MigratoryData API for building Android apps able to push notifications to end users even when the mobile device is in “sleep” mode.

MigratoryData WebSocket Server is certainly most appreciated and in demand for its ability to reliably distribute real-time data to a large number of web clients.

However, our customers want to leverage the high scalability and the enterprise features of MigratoryData WebSocket Server and use it to distribute real-time data to mobile clients too – not only to mobile web browsers but also to native mobile applications.

As a result, we’ve extended our client API for JavaScript, used to build pure real-time web applications accessible from any standard browser, to mobile technologies. In this way, we’ve developed client APIs for Android (Java), Windows Mobile (.NET Compact Framework), iOS (Objective-C), and BlackBerry (Java ME).

The new MigratoryData Android Push Notification API enhances the existing MigratoryData API for Android with the ability to push notifications even when the mobile device is in “sleep” mode.

A push notification is similar to an SMS notification. However, the push notifications can be sent at almost no cost, the delivery is instant and guaranteed.

The new API implements all the features of the MigratoryData Client APIs, including:

  • Encrypted SSL/TLS Connectivity
  • Load Balancing and Fault Tolerance
  • Guaranteed Message Delivery
  • Entitlement

Also important to note is that this API connects end users directly to the MigratoryData server using a persistent TCP connection (even in sleep mode) and without using the Google GCM (“Google Cloud Messaging”) service. Thus, data is delivered directly and securely to mobile users, without the need to pass through a third-party service.

The API will be available shortly via our download portal but if you want to try it sooner, just let us know.

P.S. I promised some new benchmarks for MigratoryData WebSocket Server version 4.0 but of course premium customer support is MigratoryData’s top priority. I hope to be able to perform the new benchmark tests shortly.

Websocket Server Handling Millions of Concurrent Users: True or False?

Some providers of enterprise WebSocket servers claim their real-time web technology scales to millions of users. However, AFAIK, only MigratoryData currently offers evidence of how this scaling is achieved. Some claims:


A true veteran performance guru (Kirk Pepperdine) joins the Kaazing team to verify test Kaazing’s 1 million connection benchmark on a 1U blade


… platform for pushing live data over WebSockets and other web protocols, scalable up to millions of users


Scaling infrastructure to maintain millions of long running connections is not trivial, but we’ve worked out the tricks to handle it with ease


A single MigratoryData instance is able to handle up to 1 million concurrent users (see benchmarks)”

Most likely, all the products mentioned above come with some form of clustering. Thus, this feature can be used to scale horizontally and push data to millions of concurrent users by deploying multiple WebSocket server instances. In this case, scaling to millions of users is possible but expensive.

MigratoryData implements built-in high availability clustering, thus it scales horizontally. But more important, MigratoryData demonstrates (as published in their Performance Benchmarking Guide) that pushing real-time data while having 1 million concurrent users connected is possible from a single instance running on a 1U blade. Thus, MigratoryData is able to push data to millions of users and, in fact, it is currently used in production to push real-time data to millions of end-users every day.

Over the next couple of weeks, I’m going to work on the performance benchmarking of the just released MigratoryData WebSocket Server 4.0 (see the Architecture Guide for an overview of the new version 4.0).

Last time when I performed benchmark tests for MigratoryData server 3.5, I compared the results with those published by Caplin Systems for their WebSocket server Caplin Liberator. Caplin Liberator’s performance results were very good in terms of latency and throughput and I think (if I recall correctly) we’ve achieved comparable results, slightly better for some use-cases and slightly worse for other ones. Caplin Systems’ target at that time was not high vertical scalability, as suggested by Martin Tyler.

I’m interested if any WebSocket server provider that claims high vertical scalability can offer any published results so that I can compare them with the new results of MigratoryData 4.0. MigratoryData benchmark results for version 4.0 are going to be released soon.


The Must-Have Features of a WebSocket / Comet Server

I plan to blog about some important features of the WebSocket / Comet servers:

  1. High Vertical Scalability,
  2. Clustering (Horizontal Scalability / Load Balancing),
  3. Low Latency,
  4. Guaranteed Message Delivery (in presence of failures),
  5. Fault Tolerance (both on client-side and server-side),
  6. Security (including Authorization / Entitlement),
  7. Low Bandwidth,
  8. Monitoring,
  9. APIs,
  10. Benchmarking.

If you think I missed an important feature, please add a comment here with your suggestions.