MigratoryData Server

Overview

Businesses running real-time web and mobile applications struggle with latency issues and high bandwidth usage. Both latency and bandwidth problems are inherent to the today's techniques employed to achieve real-time data distribution to users with classical web servers.

To overcome these problems, we have created MigratoryData Server, an enterprise-grade web messaging server, distributing data to users in milliseconds with minimal traffic overhead.

Unlike classical web servers or other web messaging servers, MigratoryData is designed to scale to a huge number of concurrent users. It has been benchmarked to stream real-time data to 12 million concurrent users from a single 1U server while pushing more than 1 Gbps real-time data.

MigratoryData Server is now used in production to successfully stream real-time data to millions of end users daily.

Key Features

Unified API for Web, Mobile, and Enterprise Apps

The same client API for building real-time websites is also available to build native real-time mobile apps for iPhone/iPad, Android, BlackBerry, Windows Mobile devices, as well as other real-time Internet applications (see below the list of mobile technologies and programming languages supported by the client API).

High Vertical Scalability

Support up to 12 million concurrent users on a single 1U server while delivering more than 1 Gbps (see C12M benchmark). Also, in terms of data volumes, MigratoryData Server is able to deliver 8.88 Gbps real-time data to 192,000 concurrent users from a single 1U server (see 8x higher scalability than competition benchmark)

Horizontal Scalability

MigratoryData can be clustered and scale up horizontally by adding more MigratoryData instances. The massive vertical scalability per MigratoryData instance and the near-linear horizontal scalability provide our customers with large costs savings as they are able to handle considerably more concurrent users or real-time data volumes with less hardware.

Guaranteed Delivery

The system guarantees end-to-end delivery of data even in the event of unexpected events such as hardware failures or network disconnections (see MigratoryData Architecture Guide, Chapter "Guaranteed Message Delivery")

Load Balancing

The load balancing can be controlled to take into account the hardware differences of the machines which host the MigratoryData instances (see MigratoryData Architecture Guide, Chapter "High-Availability Clustering: Load Balancing and Fault Tolerance")

Fault Tolerance

Fault tolerant system with no single point of failure offering 24x7 high availability (see MigratoryData Architecture Guide, Chapter "High-Availability Clustering: Load Balancing and Fault Tolerance")

High Throughput

Able to scale up to the 10GbE limit by pushing 2 million messages per second from a single instance running on an 1U server (see 8x higher scalability than competition benchmark)

Low Latency

Any fresh data is delivered to clients in milliseconds and continuously over a single persistent TCP connection established between the client and the server (see benchmarks)

Low Bandwidth

Efficient communication protocol which adds to each message a small constant overhead (see benchmarks)

Security

Secure system using TLS/SSL encrypted connections, authentication, and data entitlement (see MigratoryData Architecture Guide, Chapters "Security", "Entitlement", and "Communication Ports")

Advanced Monitoring

Secure (SSL) and password-protected JMX and HTTP monitoring support. Many indicators are available such as: connected sessions, session connections/disconnections per second, in/out messages per second, in/out bytes per second. For each indicator, the following statistics are available: maximum, average, and standard deviation. Each statistic is calculated on various periods of time such as last 1 minute, last 5 minutes, last 15 minutes, last 1 hour, last 1 day, etc

Internationalization

Accept and support content through the Unicode character set

Capacity Planning

You can estimate the hardware and the number of MigratoryData Server instances required for your real-time application by using MigratoryData Benchmark Kit, a tool able to simulate a configurable number of concurrent clients and able to publish messages of a configurable size at a configurable frequency

Audit and QA

MigratoryData Server is able to record messages for audit. Also, you can replay the messages using MigratoryData Replayer, a tool able to: publish recorded messages at the same speed as occurred, accelerate or slow down the original speed by preserving the timestamps proportions, and publish messages from a given start time until a gived end time


Client API Libraries

We provide a common API with libraries for the most popular environments as detailed in the table below. These API libraries can be used to create real-time web, mobile, desktop, and server applications that communicate with MigratoryData Server.

Web Applications

API for JavaScript

Mobile Applications

API for Android

API for iOS (iPhone and iPad)

API for .NET CF (Windows Mobile)

API for Java ME (BlackBerry)

Enterprise Applications

API for Java

API for C# .NET

API for C++

API for PHP

API for Python

API for Ruby

Platform

Written in pure Java, MigratoryData Server runs on all major operating systems including Linux / Unix, Mac, and Windows. For production usage, we recommend Linux.