Every one of us is familiar with a real time messaging application Whatsapp.
It's quit interesting to know actually how the Whatsapp works.
Whatsapp make use of Ejabberd Extensible Messaging and Presence Protocol (XMPP) server.
This server facilitates instant message transfer between two or many users at any given second. ERLANG is the programming language used by Whatsapp. Ejabberd is an open source Jabber server written in Erlang language. It was preferred by the developers of Whatsapp as it was best suited for handling huge communication system with high sustainability. Erlang also helps by quickly adapting to instant updates and hot fixes. Whatever may be the improvisations or coding improvements, Erlang helps in quickly pushing the changes to live implementation without needing restarts.
It's quit interesting to know actually how the Whatsapp works.
Whatsapp make use of Ejabberd Extensible Messaging and Presence Protocol (XMPP) server.
This server facilitates instant message transfer between two or many users at any given second. ERLANG is the programming language used by Whatsapp. Ejabberd is an open source Jabber server written in Erlang language. It was preferred by the developers of Whatsapp as it was best suited for handling huge communication system with high sustainability. Erlang also helps by quickly adapting to instant updates and hot fixes. Whatever may be the improvisations or coding improvements, Erlang helps in quickly pushing the changes to live implementation without needing restarts.
Whatsapp manages more than 50 billion message transfers a day. The key to the smooth data processing lies with the message queue length. The length of the message queue of all the processes associated with a node is monitored. Incase of multimedia messages, contents (audio, video, pdf, locations, contacts or image) are uploaded into a HTTP server and are linked with the content and then sent to the receiver in the form of a thumbnail. Based on the user's needs the content can either be downloaded or discarded.
XMPP is being used by Whatsapp. To ensure network security, Data security layer (DSL) is being used. This ensures private data transfer. As and when message is sent, it is queued on the server. The message waits in the queue until the recipient reconnects to receive the message. As and when a message is delivered the sender gets notified by a double check mark near the message. After the delivery the messages are instantly deleted from the server memory.
For the database management Mnesia DB comes into play. Mnesia is a multiuser distributed DBMS which happens to be the default database of ERLANG. Thus by using Mnesia, the app is able to achieve fast request responses, thereby improving the overall efficiency. Free BSD is the operating system upon which Whatsapp is laid upon.
XMPP is being used by Whatsapp. To ensure network security, Data security layer (DSL) is being used. This ensures private data transfer. As and when message is sent, it is queued on the server. The message waits in the queue until the recipient reconnects to receive the message. As and when a message is delivered the sender gets notified by a double check mark near the message. After the delivery the messages are instantly deleted from the server memory.
For the database management Mnesia DB comes into play. Mnesia is a multiuser distributed DBMS which happens to be the default database of ERLANG. Thus by using Mnesia, the app is able to achieve fast request responses, thereby improving the overall efficiency. Free BSD is the operating system upon which Whatsapp is laid upon.
-Mr. Gurukiran Bhat
Department of CS