MigratoryData Advantages

All we make is WebSockets messaging software and we are the only messaging vendor focused on massive scalability. Our unique design ideas have provided a clear breakthrough in scalability. We can demonstrate that a single instance of MigratoryData running on a commodity server can achieve real-time messaging to 10 million concurrent users. Furthermore, for over a decade, companies from Fortune Global 500 giants to innovative startups have been using MigratoryData in deployments with millions of users. Massive scalability is achieved without sacrificing integrity. We implement active/active clustering, replication, and distributed in-memory caching to ensure message ordering and message delivery guarantees even in presence of hardware failures or network disconnections.

MigratoryData vs Web Servers

Traditionally, web servers were used to achieve a rudimentary form of real-time messaging. The client periodically sends HTTP requests to the web server to get new messages, if any. However, this HTTP polling approach becomes inefficient for apps with many users. More importantly, it does not offer a true real-time experience to the users, the latency of the messages being always limited by the frequency of the HTTP polling requests.

Establishing new connections with HTTP requests, carrying redundant HTTP headers and cookies (automatically added by the web browsers), handling HTTP requests at a high frequency (to emulate real-time messaging) produce important bandwidth consumption and require lots of machines to deploy the web server for applications with many users. This results in a high total cost of ownership (TCO).

MigratoryData uses the WebSocket protocol where messages are sent to and from users over persistent WebSocket connections, in milliseconds, with minimal traffic overhead. Moreover, MigratoryData can handle up to millions of concurrent users from a single machine. This results in a low TCO and a true real-time experience to the users.

MigratoryData vs WebSocket Servers

The WebSocket protocol has been designed for realtime bidirectional communication. It is compact and uses persistent connections. Therefore, it creates the premises for messaging with low-latency and high scalability. However, the degree in which a WebSockets server is scalable and achieves low latency depends entirely on the quality of its implementation. More importantly, the WebSocket protocol itself is a low-level transport protocol using data frames rather then messages. Also it involves a single server rather than a cluster of servers. Therefore, a WebSocket server performs only a few functions of an enterprise-ready WebSockets messaging server, which should include at least usability through a higher level messaging API and high availability trough some form of clustering.

MigratoryData achieves usability by exposing an easy-to-use publish/subscribe messaging API with libraries for the most popular programming languages. It achieves high availability by implementing active/active clustering. Finally, the quality of its implementation is unparalleled in terms of scalability, one instance being able to handle real-time messaging to millions of concurrent WebSockets connections.

MigratoryData vs MQTT Brokers

MQTT is a publish/subscribe messaging protocol using persistent connections, including WebSockets. While MQTT itself involves a single broker, commercial MQTT brokers implement high availability and all necessary enterprise features. However, being designed to be simple enough to accommodate the constrained IoT devices, it becomes less scalable for other real-time use cases than IoT. For example, it implements guaranteed delivery using simple acknowledgements. This makes sense for IoT. Now suppose that a real-time web or mobile sports scores app broadcasts a score update message to one millions sports fans using MQTT, this will result into one million feedback acknowledgment messages. This is known as the feedback implosion problem, and has an impact on vertical scalability.

MigratoryData implements guaranteed delivery using negative feedback. Sequence numbers are assigned to messages on the server and messages are replicated across the cluster. Only when a failure occurs (e.g. incorrect sequence number, network failure etc), a user sends a negative feedback by reconnecting to the MigratoryData cluster and asking for messages starting with the last correct sequence number it received. In this way, MigratoryData achieves both reliable messaging and vertical scalability to address use cases with up to millions of users.

Get Started for Free

Download and install MigratoryData on your machines. The preinstalled license key allows you to use MigratoryData for evaluation, testing, and development — for up to 100 concurrent connections per server instance, with no feature restrictions.