GBR: ADR-0012 Ingestão Hexagonal e Roteamento da 'Trindade de Dados' (Splitter) | Wiki
Documentação de engenharia e especificações técnicas da Gleam-BR.
GBR: ADR-0012 Ingestão Hexagonal e Roteamento da "Trindade de Dados" (Splitter)
- *Status:* Aceito
- *Data:* 2026-05-01
*Contexto:*
O gbr_monitor atuava como um canal de passagem único, mas a plataforma Horus Falcon 2.0 exige que a telemetria satisfaça três domínios fundamentais e conflitantes em latência e formato: plotagem de gráficos em tempo real, avaliação de regras de negócio (Alarmes) e cristalização de eventos para futuras auditorias de IA (Knowledge Graph). Roteá-los sequencialmente ou no mesmo processo geraria gargalos de I/O e acoplamento perigoso.
*Decisão:*
-
*Modelagem de Tipos Algébricos (ADTs):* Definição estrita da "Trindade de Dados":
TelemetryEvent(Bruto),BpeTransition(Matemático/Lógico) eSemanticFact(Triplo RDF: Sujeito-Predicado-Objeto). -
*Moedor de Carne (Hexagonal Splitter):* Implementação da função
process_eventno Ingestor que recebe um RecordDataSinks. Os destinos (Bancos de Dados) são injetados como funções puras. -
**Isolamento Semântico (
gbr_graph):** A extração doSemanticFactpara o banco analítico (DuckDB via C++) foi isolada num Ator OTP independente (gbr_graph). O Gateway dispara o fato de forma assíncrona (process.send).
*Consequências:*
-
*Positivas:* Se a extensão C++ do DuckDB sofrer uma falha de segmentação (Segfault), a contenção OTP assegura que o Ator
gbr_graphmorre e reinicia isoladamente, sem afetar o fluxo de telemetria bruta para o QuestDB ou a conexão P2P dos agentes. Extrema velocidade de ingestão e testability via injeção de Mocks nosDataSinks. - *Negativas/Riscos:* A ramificação de dados aumenta a complexidade de rastreabilidade (Tracing) fim-a-fim, exigindo IDs de correlação fortes caso uma métrica seja processada de forma divergente entre o TSDB e o BPE.