![]() ![]() ![]() The ejabberd server, which implements the XMPP protocol, proved to also be a perfect base for the messaging backend. We also took advantage of the wide possibilities of extending the XMPP protocol with custom functionalities that was asking for. It meant we were able to quickly implement it within our web application, mobile apps for Android and iOS, and finally a desktop application for Windows. In our case, the availability of client libraries for various technologies was of critical importance. ‘ We opted for the XMPP protocol because it is an open, mature and well-established messaging protocol. Here’s what he had to say about the reasoning behind the decision. To tell you more about the decision for this particular tech stack, I sat down with Paweł Dorofiejczyk, the Lead Architect who leads the team implementing the protocol. Considering the magnitude of our cooperation, we had a chance to develop their large-scale enterprise communication system, also powered by ejabberd, amongst a number of other services. is one of the largest logistics platforms in Europe and has been our client for more than 20 years now. To read more about the issues encountered and how Nintendo handled them, feel free to read this article. Number-wise, as of that 2019 presentation, NPNS was able to handle 10 million simultaneous connections, 2 billion daily sent messages, 100-200 thousand connections per node and 600 messages a second. ![]() Similarly to the WhatsApp’s case, XMPP and ejabberd had to be customized to meet the business requirements, especially the scale. The push notifications in questions include user-based (aimed at those who are active, eg playing a game) and system-based (updates, news and announcements, downloads etc). In 2019, Nintendo shed some light on the Nintendo Switch Push Notification infrastructure (NPNS), showcasing how XMPP and ejabberd are used to power a system that, as of today, serves around 80-90 million active users (according to this Nintendo’s presentation ).Ĭonsidering NPNS is a large-scale real-time messaging protocol that has to stay constantly connected to the infrastructure, listening for push notifications, it has to be able to handle millions of concurrent connections. How Nintendo Switch uses XMPP protocol and ejabberd WhatsApp processes over 100 billion messages daily and still everything works like a charm. To support such a scale, WhatsApp uses XMPP (a heavily modified version, to be more precise) on the ejabberd server (which is also heavily modified to improve and optimize performance).Ĭonsidering they haven’t switched to anything else, it is safe to assume that, although not perfect out-of-the-box, both solutions provide the necessary flexibility to build exactly what your particular product needs and not worry that you won’t be able to scale it. Facebook was using ejabberd at a time (they seem to have switched, at least partially, to using MQTT in their mobile applications as of XXXX), which might have served as an inspiration to choose said server as WhatsApp’s core technology.īeing the most popular instant messaging service in the world with over 2 billion active monthly users in over 100 countries is an enormous magnitude of operations. WhatsApp started as a mere text status service built on PHP and MySQL, but when its founders realized people are using it to chat rather than post statuses, they started looking for a chat server. How WhatsApp uses XMPP protocol and ejabberd Today, we’ll have a look at XMPP implementation – ejabberd specifically (an open-source XMPP server with integrated MQTT broker and SIP service) and how they are being used at enormous scale by giants such as Meta, Nintendo, Epic Games and more. There are several options available, most popular of which would be XMPP, MQTT, SIP and WebSockets. Let’s focus primarily on the instant messaging protocols. However, building an app that can handle even the fragment of a scale at which the top chat apps like WhatsApp operate requires a well-thought-out messaging infrastructure. Building a simple instant messaging application might not be the most complicated task in our tech world.
0 Comments
Leave a Reply. |