Gleam.br Wiki

GBR: ADR-0010 Isolamento de Protocolos e Formalização do 'Subject-First Proxy' (`gbr_tunnel`) | Wiki

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

GBR: ADR-0010 Isolamento de Protocolos e Formalização do "Subject-First Proxy" (gbr_tunnel)

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

*Contexto:*

O gbr_tunnel inicial apresentava um alto acoplamento: a lógica de manipulação de sockets TCP estava intrinsecamente misturada com a lógica de empacotamento do Stream P2P (Yamux). Isso impedia que a camada de P2P fosse tratada de forma agnóstica (como um "cano burro" de bytes). Adicionalmente, os limites de Ownership (propriedade de processos) da BEAM causavam instabilidades quando o Ator encarregado tentava repassar a leitura de um socket para processos dinâmicos.

*Decisão:*

  1. *Desacoplamento de Camadas:* Implementação de fronteiras claras (tipos opacos) separando o Ator de Transporte TCP do Ator de Multiplexação Yamux. O aplicativo que consome o P2P não precisa mais saber como o Yamux estrutura os seus frames.
  2. *Padrão "Subject-First Proxy":* Consolidação arquitetural da solução para o problema de Ownership. O processo local que escuta a porta TCP agora instancia preventivamente o seu próprio Subject (caixa de correio) e passa essa referência adiante, ancorando a leitura do socket ao processo original e repassando apenas as mensagens puras para a malha.
  3. *Release v1.0.0 e CHANGELOG:* A arquitetura do túnel foi selada na versão 1.0.0, acompanhada da limpeza de logs ruidosos de depuração (debug) e da documentação técnica robusta (README/CHANGELOG).

*Consequências:*

  • *Positivas:* Estabilização definitiva do tráfego bidirecional sem perda de pacotes; o código do gbr_tunnel está limpo e apto para ser utilizado em ambientes de produção corporativa como um substituto descentralizado de VPNs/Ngrok.
  • *Negativas/Riscos:* A arquitetura de proxy manual adiciona uma leve complexidade indireta no rastreamento do ciclo de vida dos processos (PID tracing) durante sessões de depuração profunda em produção.