EARS: Requisitos Fundacionais Globais (Gleam-BR Core) | Wiki
EARS: Requisitos Fundacionais Globais (Gleam-BR Core)
*Requisitos Ubíquos (Ubiquitous Requirements)*
- *UBQ-01:* O sistema deve operar sob um modelo Offline-First na borda (Edge), garantindo a continuidade do estado em instâncias gbr_mnesia independentemente da conectividade de rede upstream.
- *UBQ-02:* O sistema não deve expor portas de entrada (inbound ports) para a internet pública, utilizando exclusivamente canais reversos multiplexados via Yamux para toda a comunicação.
*Requisitos Orientados a Eventos (Event-Driven Requirements)*
- *EVD-01:* Quando a infraestrutura gerar logs ou métricas de telemetria, o componente gbr_telemetry deve formatá-los em Influx Line Protocol (ILP) e enviá-los exclusivamente através do Stream 0 do túnel Yamux.
- *EVD-02:* Quando um agente de IA invocar uma ferramenta via Model Context Protocol (MCP), o sistema deve acionar o roteador semântico local para tentar a resolução em nós P2P adjacentes antes de escalar a requisição para a nuvem.
*Requisitos Orientados a Estado (State-Driven Requirements)*
- *STD-01:* Enquanto implantados no ambiente de nuvem (Google Kubernetes Engine - GKE), os nós de processamento (gbr_p2p_mcp, gbr_bpm) devem permanecer puramente sem estado (stateless workers).
- *STD-02:* Enquanto a DHT do Kademlia estiver em fase de convergência (Bootstrap), as assinaturas de segurança e identificação de nós (gbr_crypto) devem basear-se no protocolo Identify para viabilizar a travessia de NAT.
*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*
- *UNW-01:* Se ocorrer o particionamento da rede entre a Borda e a Nuvem, o componente gbr_disk_log deve atuar em conjunto com uma máquina finitade estados para persistir o estado localmente de forma comprimida/criptografada, enfileirando os dados para o Bridge Service na reconexão.
- *UNW-02:* Se o sistema processar pacotes pesados de Protobuf/GossipSub, a decodificação deve ser delegada para NIFs em Rust, a fim de evitar o bloqueio (starvation) do agendador (scheduler) da BEAM.
*Requisitos de Funcionalidades Opcionais (Optional Feature Requirements)* - *OPT-01:* Onde a arquitetura do hardware de borda permitir, o sistema deve integrar o DuckDB via Rust NIF para viabilizar processamento vetorial em memória (VSS/HNSW) sem delegar consultas semânticas à nuvem.