Gleam.br Wiki

GBR: ADR-0007 Consolidação da Camada de Rede ('Layer 0') e Padrão Rigoroso de Documentação (Release v1.0.0) | Wiki

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

GBR: ADR-0007 Consolidação da Camada de Rede ("Layer 0") e Padrão Rigoroso de Documentação (Release v1.0.0)

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

*Contexto:*

Para a apresentação da infraestrutura base (gbr_p2p) a parceiros de due diligence técnica e possíveis investidores corporativos, o código necessitava de transcender o estado de "P&D" (Pesquisa e Desenvolvimento) para o de "Produto Empresarial". Havia dívida técnica cosmética (comentários herdados de estilo C, uso de funções obsoletas) e ausência de documentação do ciclo de vida das máquinas de estado.

*Decisão:*

  1. *Saneamento e Padronização Gleam:* Erradicação de comentários estilo C (/* ... */) em prol do padrão oficial de documentação Gleam (////), garantindo a extração automática de documentação limpa via HexDocs. Substituição de estruturas condicionais inseguras (if) por case (Pattern Matching exaustivo).
  2. *Documentação Explícita de Criptografia e Estado:* Formalização dos cabeçalhos nos ficheiros core. * connection.gleam: Documentação gráfica do pipeline de estado (Negotiating -> Handshaking -> Multistream -> Active) e do backpressure (active: once). * lib.rs: Registo formal da estratégia Zero-Copy e da delegação de carga para Dirty Schedulers na Erlang VM para os bindings criptográficos.
  3. *Congelamento da API (Release 1.0.0):* Afirmação da estabilidade dos contratos FFI e das funções públicas, aplicando a Tag oficial do Git (v1.0.0-network-layer).

*Consequências:*

  • *Positivas:* Confiança técnica absoluta transmitida ao mercado; curva de aprendizagem drasticamente reduzida para novos engenheiros que integrem a equipa; garantia de que aplicações de nível superior (Anel 1 a 4) podem ser desenvolvidas sobre uma base imutável e previsível.
  • *Negativas/Riscos:* A fixação de versão impõe a necessidade de lidar com processos rígidos de Semantic Versioning no futuro (qualquer alteração no contrato do Host ou Router exigirá a libertação de uma versão 2.0.0, aumentando a inércia a mudanças disruptivas no protocolo base).