Arquitetura para aplicação de envio de mensagens

Alguém pode explicar-me como funciona o envio de mensagens de um aplicativo, como por exemplo o WhatsApp. Como funciona a arquitetura de envio e recebimento das mensagens?
Se essas mensagens tem que ser guardadas no banco de dados?
Quando o usuário 1 envia uma mensagem qual o processo que ocorre para que o usuário 2 receba a mensagem que foi enviada?
Essas mensagens são criptografadas?

@Matheus_Emanuel são várias perguntas e todas podem ter a seguinte resposta: depende. A decisão de como implementar essa troca de mensagens é totalmente ligada a sua necessidade de negócio. Até onde sei, todas as mensagens (atualmente) via Whatsapp são criptografadas e não são armazenadas, justamente por questões de segurança.

Ele trabalha com o conceito de mensagem via unicast (um para um) e multicast (um disparada uma mensagem para um grupo), que é quando se cria um grupo de pessoas no Whatsapp. A implementação pode ser feita de N formas, desde um uso “simples” de Socket até uma comunicação via API REST. Enfim, é uma pergunta bem ampla e que pode ser implementada/resolvida de N formas.

Um abraço.

1 curtida

Arquitetura de mensagens seriam as Architectures AMPQ, atualmente uso RabbitMQ, Apache MQ e em alguns problemas Apache Camel;
Se não me engano Whatsapp usa RabbitMQ mas não sei detalhes do desenho de nodos.