All we do is producing WebSocket messaging software and we are the only messaging software provider that prioritizes massive scalability. Our innovative design ideas have led to a significant advancement in this area, as MigratoryData can demonstrate real-time messaging to 10 million concurrent users from a single server. 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 the face of hardware failures and network disconnections. Our messaging software is utilized for over a decade by a diverse range of companies, from Fortune Global 500 giants to startups, for real-time applications with millions of end-users.
MigratoryData vs Web Servers
In the past, web servers were used to provide basic real-time messaging functionality through the use of HTTP polling. The client would repeatedly send HTTP requests to the web server in an attempt to receive any new messages, but this approach is far from efficient for applications with many users. More importantly, it does not provide a true real-time experience for users, the latency of messages being limited by the frequency of polling requests.
The constant creation of new connections through HTTP requests, carrying redundant HTTP headers and cookies (automatically added by the web browsers), and handling HTTP requests at a high frequency produce high bandwidth consumption and require lots of machines for deploying the web server for applications with many users. This results in a high total cost of ownership.
On the other hand, MigratoryData offers a more effective solution through the use of the WebSocket protocol. This allows for real-time messaging to occur over persistent connections in milliseconds, with minimal overhead. Additionally, MigratoryData is capable of supporting millions of concurrent users from a single machine, making it a more cost-effective option with a true real-time experience for users.
MigratoryData vs WebSocket Servers
The WebSocket protocol was designed for real-time bidirectional communication. This protocol is compact and uses persistent connections, making it ideal for messaging with low latency and high scalability. However, the effectiveness of a WebSockets server in achieving these goals depends on how well it has been implemented. More importantly, the WebSocket protocol itself is a low-level transport protocol that uses data frames instead of messages and only involves one server, not a cluster of servers. This means that a WebSocket server can only perform a limited set of tasks compared to an enterprise-ready WebSockets messaging server, which should also offer a user-friendly messaging API and be able to handle high availability through clustering.
This is where MigratoryData comes in. It offers an easy-to-use publish/subscribe messaging API with libraries for the most popular programming languages. Additionally, MigratoryData implements active/active clustering to ensure high availability, which is crucial for enterprise-ready solutions. The quality of its implementation is also unmatched, as a single instance can handle real-time messaging to millions of concurrent WebSockets connections, providing unparalleled scalability.
MigratoryData vs MQTT Brokers
MQTT is a messaging protocol that uses publish/subscribe over persistent connections, including WebSockets. Although MQTT only involves a single broker, commercial MQTT brokers typically provide high availability through clustering and other important features for enterprise use. However, MQTT was originally designed to be simple enough for use with low-power IoT devices, which means it may not be as scalable for other non-IoT real-time applications. For instance, MQTT uses basic acknowledgements to guarantee delivery, which is suitable for IoT scenarios. However, if a real-time sports scores app broadcasts a score update message to one million fans using MQTT, this would result in one million feedback acknowledgment messages - a problem known as the feedback implosion, which impacts the vertical scalability.
MigratoryData addresses this issue by using negative feedbacks for guaranteed delivery. The server assigns sequence numbers to messages, which are replicated across the cluster. If a failure occurs, such as an incorrect sequence number or network failure, the user sends a negative feedback by automatically reconnecting to the MigratoryData cluster and requesting messages starting from the last correct sequence number received. This approach provides 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.