

Server essentially stores for each connection the XML packet which are being received, sent, processed. Reducing space, time, data complexity - We reduce the CPU, RAM, bandwidth that is spent on maintaining & processing data from each connection to the server.Horizontally - We add more smaller replicas of the same server to the cluster.Vertically - We add more resources to the same machine, more RAM, more CPU, more bandwidth.There are essentially 3 ways of scaling an infrastructure. Though there are libraries present in ecosystem for parsing xml data for browsers or mobiles. A custom much compact, future ready, protocol is a much better place. In 99.99% of systems designed, they are closed loop, that is they are meant to interact within a close eco-system of apps, client & server. The xml - parsers load the system both on client & server.

Parsing XML either on server, client or browser for that matter is not a developer friendly experience. These cost though seemingly small, becomes an issue for clients on weaker internet ( 2G connection), and leads to higher connection drop rates, higher packet re-transfers, higher undelivered queue pile-up on client & server, wasting precious battery, computer power and data. The cost of maintaining a connection alive, is essentially sending/receiving an application layer packet which client echoes back to the server within X seconds repeated every Y seconds. Įfficiency gain of 35% in data packet size.
Ejabberd video call Offline#
There are many more tags that get added to signal archiving, offline data, and much more. This is just a subset of the actual packet that is sent over the wire. The meaningful data is close to 1% of the whole data packet. For a mobile operating on 2G, the instant messaging does not feel instant anymore. XML is bloated, JSON is more compact, and there are even more compact forms of data available. Theīy the time, the mobile negotiates server & client connection features, the authentication mechanisms, the capabilities, mobility causes reconnection to trigger. In the age of mobile devices, where the internet gateway moves from tower to tower, varying between connection strengths, XMPP plays spoil sport. In my opinion it is a 2 decade old architecture that was meant for desktop's with a broadband connection. A variety of things have been implemented using these in fin-tech, messaging, health, business and many other domains. Client and server exchange capabilities using these forms, and come up with set of supported features on both of them. It can be via HTTP calls (XMPP - Bosh), or via a 2 way communication channel, (permanent socket connection ), or newer protocols such as Server side events, WebSockets. I will say it is a xml based protocol of exchanging forms between client & server. The initial thing that all my clients say, is let's use XMPP, (FunXMPP). I have created 40+ platforms, all revolving around the idea of bringing people closer, providing them with a platform to exchange their thoughts, some through text, some through media, some through audio/video calls, some through location sharing, some for schools, some for colleges, some for businesses, some for the world. XMPP is not mobile, developer or server friendly protocol.
