MQTT vs XMPP vs AMQP vs DDS vs JMS vs REST vs CoAP
Definições
DDS - Data Distribution Services
AQMP - Advanced Message Queuing Protocol
XMPP - Extensible Messaging and Presence Protocol
...
Implementações
RabbitMQ é um servidor AMQP
ejabberd é um servidor XMPP (O WhatsApp usa XMPP)
Mosquitto é um servidor MQTT
OpenDDS é uma implementação do DDS
O que há em comum nessas tecnologias
Algumas dessas tecnologias funcionam de forma distribuída, usando o conceito de programação tolerante a falhas. A linguagem de programação Erlang é ótima para isso porque ela implementa um conceito de programação chamado Actor Model. A biblioteca CloudI é utilizada para aplicar o Actor Model no Erlang (e também em outras linguagens). No Java, o Akka é a biblioteca mais famosa.