GBR: ADR-027: Streaming Visual via Server-Sent Events (SSE Broadcaster) | Wiki
Documentação de engenharia e especificações técnicas da Gleam-BR.
GBR: ADR-027: Streaming Visual via Server-Sent Events (SSE Broadcaster)
- *Status:* Aceito
- *Data:* 2026-05-01
*Contexto:*
Para a renderização de gráficos a 60FPS no frontend de administração (gbr_ui_admin), o modelo tradicional de requisições contínuas (HTTP Long Polling) ao banco de dados Time-Series (QuestDB) causaria sobrecarga de leitura e degradação de performance do cluster.
*Decisão:*
- *Padrão SSE (Unidirecional):* Adoção de Server-Sent Events em detrimento de WebSockets para a UI, visto que a telemetria fluirá estritamente do Servidor para o Cliente (Read-only).
-
*Ator de Fan-Out em Tempo Real:* O módulo
sse_broadcasterfoi interligado diretamente no "Moedor de Carne" (Splitter). Sempre que o QuestDB recebe um insert via protocolo ILP, a mesma métrica é enviada assincronamente ao Ator SSE, que itera sobre o Dicionário de Frontends conectados e empurra o payload JSON para a memória do navegador.
*Consequências:*
- *Positivas:* Latência reduzida de disco a zero para a visualização da UI; o banco de dados processa exclusivamente a gravação (Write-Heavy) e o atendimento a consultas analíticas profundas, não lidando com o fluxo transiente em tempo real.
-
*Negativas/Riscos:* Acúmulo potencial de memória se conexões SSE mortas ("Half-open connections") não forem adequadamente removidas da estrutura do Ator (mitigado pelo comando de limpeza
Unsubscribeintegrado ao handler de encerramento do HTTP).