# Dietbox Socket — Atualizações ao vivo como serviço próprio, para subirem no próprio relógio.

> Um servidor de tempo real pequeno que mantém as conexões abertas: uma sala por usuário, um handshake com segredo compartilhado e um endpoint para onde a plataforma posta quando algo precisa ser empurrado. Separado do produto porque conexões de longa duração e tráfego de requisição não escalam no mesmo eixo — e porque o monolito subia uma vez por madrugada.

## Visão geral

Trinta e quatro commits em dois meses de 2022, para um serviço que sobreviveu a ambos: um servidor de tempo real que mantém cada conexão aberta, junta cada cliente a uma sala com o nome do seu id de usuário, e expõe um único endpoint para onde o resto da plataforma posta quando algo precisa ser empurrado. Ele fica fora do produto porque uma conexão de longa duração e uma requisição não são o mesmo tipo de tráfego.

## Stack

- Node
- Express
- Socket.IO
- Application Insights
- Azure App Service
- Azure DevOps

## Destaques

- O endpoint de notificação para onde o resto da plataforma posta quando algo precisa ser empurrado.
- Um endpoint de info que reporta a contagem de conexões ao vivo, para monitoramento.
- Um endpoint de saúde que reporta a própria latência.
- Um handshake com segredo compartilhado que desconecta um cliente imediatamente se ele acabar sem entrar em nenhuma sala.

## Papel

Engenheiro de Software Sênior · 2022. Trabalho profissional de código fechado — o texto descreve o projeto sem o código.

---

Source: https://felipealmeida.tech/pt/projects/dietbox-socket
