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.
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 iOS and Android, 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)
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.
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
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 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")
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)
Efficient communication protocol which adds to each message a small constant overhead (see benchmarks)
Secure system using TLS/SSL encrypted connections, authentication, and data entitlement (see MigratoryData Architecture Guide, Chapters "Security", "Entitlement", and "Communication Ports")
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
Accept and support content through the Unicode character set
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.
API for Android
API for iOS
API for Java
API for C++
API for C# .NET
API for PHP
API for Python
API for Ruby
Written in pure Java, MigratoryData Server runs on all major operating systems including Linux / Unix, Mac, and Windows. For production
usage, we recommend Linux.