Friday, February 28, 2014

WhatsApp Architecture

Welcome to the architecture of the decade , WhatsApp :) in terms money got from Facebook :)

WhatsApp Messenger is a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS.

WhatsApp is disruptive SMS technology on your phone (via internet).

What is underlying architecture?

It was not LAMP ( Linux, Apache, MySQL , and PHP front end) thought?.

We have discussed LAMP in facebook and Zynga architecture .

LYCE/LYME architecture

LYME and LYCE are solution stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of:

  (The above is from wikipedia, and self explanatory)


  • Dual Westmere Hex-core (24 logical CPUs)
  • 100GB RAM, SSD
  • Dual NIC (user-facing, back-end/distribution)
  • FreeBSD 8.3
  • OTP R14B03
(from Rick Reed, software developer's slide pack of WhatsApp)

Key functionality

Instant Messaging: is a type of online chat which offers real-time text transmission over the Internet.












Enter Ejabberd 

Ejabbered is XMPP server which provide quite good features of open source, Whatsapp uses some modified version of this, facebook messaging also uses a modified version of this. Some more chat applications likes Samsung's ChatOn, Nimbuzz messenger all use ejabberd based ones.

XMPP is "Extensible Messaging and Presence Protocol"   is a communications protocol for message-oriented middleware based on XML. 

XMPP is a relatively simple protocol that occurs over TCP sockets using XML messages

Simple XMPP architectecture is as follows:
 Diagram of a more complex XMPP architecture, with XMPP gateways connecting to SMS and SMTP clients and servers

Ejabbered architecture is as follows:

Enter Erlanng Factory

Erlang logo.png
The Erlang Factories are a grounded, hand-on-the-wire point of inspiration where you meet the people who make and use Erlang. They are about the people, not just the language. - Dave Smith (Author of Rebar) solutions

Erlang factory uses the modified Ejabbered technology. 

This is very high level architecture, will publish ,more on this architecture.

Hope you like it, pl fell free to comment :)


If you like this article, Please donate money

No comments: