MQTT used by Facebook Messenger

August 12th, 2011 - knolleary

This one has come slightly out of the blue. We’ve always known around here that MQTT is ideal for mobile messaging; the small-footprint, low bandwidth nature of the protocol helps to minimise both battery use and network traffic. Just what you want to stay connected.

Lucy Zhang, a software engineer at Facebook, has written about their new Facebook Messenger app:

One of the problems we experienced was long latency when sending a message. The method we were using to send was reliable but slow, and there were limitations on how much we could improve it. With just a few weeks until launch, we ended up building a new mechanism that maintains a persistent connection to our servers. To do this without killing battery life, we used a protocol called MQTT that we had experimented with in Beluga. MQTT is specifically designed for applications like sending telemetry data to and from space probes, so it is designed to use bandwidth and batteries sparingly. By maintaining an MQTT connection and routing messages through our chat pipeline, we were able to often achieve phone-to-phone delivery in the hundreds of milliseconds, rather than multiple seconds.

You can read her full post here.

[edit: of course, MQTT has also been used to build a Facebook "presence" device before, by our friends at Isidorey, but this new deployment inside Facebook is obviously something with much broader reach!]

MQTT: Why does the new Facebook iOS Application & Messenger use MQ telemetry transport(MQTT)? - Quora

[...] actually answered when Facebook announced that they are using MQTT in Facebook Messenger last year.http://mqtt.org/2011/08/mqtt-use…Basically it is small, lightweight, efficient, and very good for battery life (see [...]

Mosquitoes! Rabbits! Facebook! Portals! (news round-up) | MQTT: MQ Telemetry Transport

[...] year after Facebook first went public about their use of MQTT within Facebook Messenger, the new native iOS Facebook app also credits the libmosquitto library and their blog post mentions [...]

5 Trends Driving Change in App Architectures | VMware vFabric Blog - VMware Blogs

[...] social networks. Technologies such as Spring Mobile, Spring for Android, Spring Data REST, JSON, MQTT, and Oauth are critical for this work. Also it’s critical to understand the intricacies of [...]

Un mio nuovo piccolo progetto su CodePlex : M2Mqtt - DevExperience

[...] Per chi non lo sapesse MQTT è un protocollo per la comunicazione M2M (Machine to Machine) nell’ambito dell’Internet Of Things e per il quale ultimamente è stato avviato un processo di standardizzazione con OASIS. Basti pensare che grazie alla suo notevole “leggerezza”, è stato scelto come protocollo per lo scambio di messaggi attraverso il Facebook Messanger. [...]

add a comment