Whatsapp is growing and it is growing fast. Just within the last 4 months it gained 100M monthly active users. Additionally, as the founder Jan Koum says on his profile, every day users send over 30 billion messages. What still remains questionable is the business model. But that is a task for Facebook 😉
From the technical point of view the Whatsapp was originally a Jabber server written in Erlang (Ejabberd). The multimedia is sent out-of-the-band via HTTP. Only the thumbnail is encoded in base64. Google push notifications are used on Android.
Jabber or eXtensible Messaging and Presence Protocol (XMPP) was developed by an open source community in 1999 as a standardized alternative to existing Instant Messaging platforms. By design XMPP supports instant messaging, presence and contact list maintenance. But because it is extensible nowadays there is also a support for gaming, social networking, VoiP, file transfer and many other applications. Actually Jingle protocol used by Google is an example of such XMPP extension. Last but not least XMPP extensions are used very much for Mashine-to-Mashine (M2M, IoT) communication. Generally we can say that XMPP is a direct competitor of SIP. Interwoking between XMPP and SIP is possible however the RFC is not finished yet.
Erlang is a special functional programming language designed by Ericsson especially for telecom systems. There were several basic principles which were followed: massive parallelism, soft-real-time, secure memory management. Erlang supports hot swapping of code blocks and tracing of functions. So Erlang is a very good choice if we need to manage many concurrent processes or transactions. Whatsapp is processing > 70M Erlang messages/s.
If you want to know more about the architecture of Whatsapp you can check a great article on http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html.