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 the 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 architectureLYME 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:
- Linux, the operating system;
- Yaws, the web server;
- Mnesia or CouchDB, the database;
- Erlang, the functional programming language.
(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
Instant Messaging: is a type of online chat which offers real-time text transmission over the Internet.
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 like 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 architecture is as follows:
Ejabbered architecture is as follows:
Enter Erlang Factory
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, please feel free to comment :)