Gleam.br Wiki

GBR: ADR-003 Ingress HTTP Norte-Sul e Resolução de 'Cold Start' via Micro-Retry Lock-Free | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: ADR-003 Ingress HTTP Norte-Sul e Resolução de "Cold Start" via Micro-Retry Lock-Free

  • *Status:* Aceito
  • *Data:* 2026-05-01

*Contexto:*

Enquanto a malha P2P (Tráfego Leste-Oeste) não for totalmente adotada na borda, o sistema precisa suportar ingestão de telemetria de agentes legados via HTTP POST (Tráfego Norte-Sul). No paradigma Erlang, o roteamento da telemetria para os Atores isolados no ETS é ultrarrápido (Lock-free). No entanto, o primeiro evento recebido de um novo servidor gerava uma falha de roteamento imediata ("Ator não encontrado"), pois o Ator de telemetria ainda estava sendo instanciado pelo Manager (condição conhecida como Cold Start). Bloquear o roteador à espera da criação do Ator destruiria o throughput do sistema.

*Decisão:*

  1. *Chassi Web de Alta Performance:* Utilizar wisp e mist (Servidor Erlang) para processamento HTTP.
  2. *Parsing Estrito (Parse, don't validate):* Todos os payloads JSON recebidos na borda da rede são submetidos ao gleam/dynamic/decode. Apenas pacotes sintaticamente idênticos à assinatura do TelemetryEvent entram no sistema; todo o resto recebe drop (Bad Request), atuando como firewall de sanitização de dados.
  3. *Padrão Micro-Retry Lock-Free (A Fachada):* Em vez de bloquear a thread de rede esperando o Manager iniciar o Ator, a função de Fachada (monitor.ingest) despacha o pedido de criação, suspende a execução exclusivamente daquele pacote por 10 milissegundos (process.sleep(10)), e tenta inserir no ETS uma segunda vez.

*Consequências:*

  • *Positivas:* Previne a perda de dados ("Zero Data Loss") no milissegundo inicial da implantação de um novo nó. Mantém o roteador principal operando em tempo O(1), sem mecanismos de Lock em tabela.
  • *Negativas/Riscos:* Atraso de 10ms na resposta HTTP (ACK) exclusiva para a primeira métrica do ciclo de vida de um servidor monitorado (impacto ínfimo, porém arquiteturalmente presente).