Gleam.br Wiki

GBR: Requisitos de Roteamento Dinâmico e Execução Externa (Dispatcher & Sandbox) | Wiki

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

GBR: Requisitos de Roteamento Dinâmico e Execução Externa (Dispatcher & Sandbox)

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-01:* O gbr_dispatcher deve operar em total agnosticismos de domínio, desconhecendo quaisquer estruturas de telemetria, Pub/Sub ou processos de negócios, focando unicamente na alocação, recuperação e cache ETS de processos OTP.
  • *UBQ-02:* O gbr_sandbox deve garantir que a execução de qualquer motor de script externo seja monitorada por temporizadores estritos (Timeouts), convertendo processos com tempo excedido em falhas nativas seguras e não bloqueantes.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-01:* Quando múltiplas requisições simultâneas tentarem despachar mensagens para um Alvo (Target) cujo Ator ainda não existe, o sistema gbr_dispatcher deve utilizar a diretiva insert_new para eleger atômica e exclusivamente um único processo encarregado da instanciação do Ator.
  • *EVD-02:* Quando um comando for acionado no gbr_sandbox e a máquina hospedeira não possuir o motor de execução instalado (ex: python3 ou node não encontrados / ENOENT), o wrapper Erlang Port deve interceptar a falha em nível de socket do Sistema Operacional e retornar um Objeto de Erro legível sem travar a thread de testes (gleeunit) ou a VM.

*Requisitos Orientados a Estado (State-Driven Requirements)* - *STD-01:* Enquanto o processo "vencedor" da trava atômica estiver a invocar o construtor do novo Ator, todos os processos "perdedores" da concorrência devem entrar em um estado de suspensão temporária (Micro-Retry Lock-Free), repetindo as pesquisas ao ETS de forma passiva até que o novo registro de Ator seja propagado em memória.

*Requisitos de Funcionalidades Opcionais / Futuras (Optional Feature Requirements)*

  • *OPT-01:* O sistema de execução isolada (gbr_sandbox) poderá, futuramente, determinar autonomamente qual motor invocar ao analisar o cabeçalho Shebang (#!/usr/bin/env ...) do ficheiro do script, em vez de depender de configurações fixas injetadas (hardcode) pelo roteador da aplicação.
  • *OPT-02:* Para clientes operando sob políticas de conformidade Zero-Trust rigorosas em nível de S.O., o gbr_sandbox deverá ser capaz de delegar os processos nativos a instâncias enclausuradas via utilitários Linux KVM/Firecracker, limitando privilégios de I/O em disco para além da mera tolerância a falhas computacionais.