Gleam.br Wiki

GBR: ADR-0007 Persistência de Borda 'Caixa Preta' via DETS | Wiki

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

GBR: ADR-0007 Persistência de Borda "Caixa Preta" via DETS

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

*Contexto:*

A arquitetura inicial dependia de uma conexão P2P constante. Em cenários de instabilidade de internet no cliente, as métricas geradas eram acumuladas na RAM ou descartadas, resultando em "buracos" nos gráficos de telemetria e perda de contexto para o motor BPMN. O uso apenas de RAM (ETS) tornava os dados voláteis perante reinicializações do agente.

*Decisão:*

  1. *Adoção do DETS (Disk Erlang Term Storage):* Implementar um buffer circular em disco no Agente local utilizando a biblioteca nativa dets do Erlang.
  2. *Operação Offline-First:* Enquanto a conexão P2P estiver em estado Disconnected, todos os eventos de telemetria (JSON) devem ser serializados como Erlang Terms e gravados instantaneamente no arquivo blackbox.dets.
  3. *Mecânica de Flush (Burst Mode):* Após a reconexão bem-sucedida, o Ator encarregado deve ler os blocos do disco e despachá-los em rajadas controladas, respeitando o backpressure da janela Yamux.

*Consequências:*

  • *Positivas:* Tolerância total a quedas de link; garantia de integridade de dados (Zero Data Loss) para auditorias de conformidade do cliente.
  • *Negativas/Riscos:* As escritas em disco são ordens de magnitude mais lentas que na RAM. O arquivo DETS possui um limite físico de 2GB, exigindo uma política de rotação e expurgo de dados antigos para evitar corrupção.