Criei um aplicativo de Messenger Instantâneo todo em @Cloudflare. Levou 1 dia, 3 arquivos, 4 recursos... E está pronto para escalar de 0 a milhões. Autenticação e roteamento → de trabalhadores Banco de dados D1 → armazenar usuário/passe Usuário DO → perfil de usuário e amigos Mensagens de DO → da conversa Escreva no blog em resposta, mas aqui um pequeno teaser: A biblioteca Cloudflare/Actors facilitou muito isso com propriedades persistentes, gerenciamento fácil de conexão com web sockets e envio de mensagens para todos os ouvintes. Mas o que cada peça fazia? Autenticação e Roteamento (Trabalhador + D1) Todas as solicitações passam pelo Trabalhador, autenticado ou não. Se não autenticado, as ações disponíveis são fazer login ou cadastrar. Quando autenticado, pode encaminhar a solicitação para qualquer um dos nossos Objetos Duráveis (usuário ou conversa) para estabelecer uma conexão web socket. Todas as informações de autenticação dos usuários são armazenadas em um banco de dados D1 (mantive tudo CF neste exemplo). Serviço ao Usuário (Objeto Durável) Nossa visualização de lista de amigos se conecta diretamente ao nosso usuário Durable Object via web socket. Quando atualizamos nosso status, enviamos uma mensagem para nosso DO individual, que pode ser transmitida via RPC para os DO dos nossos amigos e determinar se eles estão online, para enviar uma mensagem no web socket para atualização ao vivo. Aqui é onde também armazenamos nossa lista de amigos em um banco de dados SQLite com escopo para nosso usuário. Serviço de Conversa (Objeto Durável) Cada conversa individual entre dois usuários ganha sua própria instância DO. Sua responsabilidade exclusiva é armazenar mensagens, enviar notificações (via sockets) quando novas mensagens são enviadas e enviar uma notificação quando um usuário começa a digitar para que possamos ver o "A pessoa está digitando..." Resumo; Construir aplicativos por diversão só para reviver memórias nostálgicas da infância é... Vale a pena.