Gleam.br Wiki

GBR: ADR-007 Desmembramento do Monólito em Core Libraries e CLI Proprietária ('falconctl') | Wiki

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

GBR: ADR-007 Desmembramento do Monólito em Core Libraries e CLI Proprietária ("falconctl")

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

*Contexto:*

Durante a prototipagem do agente remoto de telemetria, o projeto apps/gbr_monitor_agent aglutinava lógica do domínio e funções de entrada do Sistema Operacional (main, argumentos CLI via argv). Isso impedia a construção de binários distribuíveis independentes sem vazar abstrações internas, criando acoplamentos indesejados quando as lógicas comerciais da contratante (Horus) tivessem que conviver com a infraestrutura Open-Source (FVideen/Gleam-BR).

*Decisão:*

  1. *Isolamento de Bibliotecas Base (Core):* - Extração do motor do Agente para a biblioteca agnóstica shared/gbr_agent_core (posteriormente renomeada para shared/gbr_monitor_agent para maior claridade semântica no ecossistema). - O tráfego P2P/Yamux com a lógica de TCP Relay foi extraída do aplicativo legado para a biblioteca pura shared/gbr_tunnel.
  2. **Empacotamento do Cliente Proprietário (falconctl):** A criação de um projeto exclusivo clients/horus_falcon/falcon_agent focado inteiramente na interface de usuário da CLI, utilizando a biblioteca glint para roteamento de subcomandos (start, tunnel open).
  3. *Mecanismo de Liberação Cruzada (Burrito):* Preparou-se o projeto cliente para a futura utilização do compilador burrito, que usa Zig/Elixir para compilar o código funcional da BEAM juntamente ao próprio runtime em um único executável estático multiplataforma de ~30MB, sem dependências dinâmicas no cliente alvo.

*Consequências:*

  • *Positivas:* Manutenção garantida dos limites da arquitetura em camadas (Clean Architecture); protege a propriedade intelectual do cliente final em diretórios próprios (clients/) sem contaminar os pacotes abertos do monorepo (shared/); facilita a adoção "Zero-Config" por administradores de sistema nos clientes finais.
  • *Negativas/Riscos:* O ecossistema exige familiarização constante dos engenheiros com as fronteiras de cada pacote do workspace; o compilador Burrito insere dependências pesadas na cadeia de CI/CD (Zig/Elixir) para cross-compilation.