Documentação Técnica do RUB

Bem-vindo à central de conhecimento técnico doRUB. Este repositório de documentação foi projetado para fornecer aos arquitetos, desenvolvedores e engenheiros de confiabilidade (SRE) todas as informações necessárias para implantar, configurar e operar o framework RUB com excelência técnica e máxima performance.

O RUB não é apenas uma aplicação, mas um ecossistema modular de alta performance projetado para suportar operações críticas que exigem baixa latência e alta disponibilidade, especialmente em cenários de varejo e logística de larga escala.


🚀 Visão Geral das Configurações e Arquitetura

Abaixo, exploramos as principais dimensões de configuração que compõem o ecossistema RUB.

1. Filosofia de Instalação e Estrutura de Diretórios

A organização do RUB segue padrões rigorosos de governança e isolamento de processos. A instalação recomendada em /opt/rub garante que a aplicação opere em um ambiente controlado e previsível.

-framework/: Contém o core imutável do sistema, garantindo integridade entre diferentes ambientes. -app/: Onde os plugins de negócio são acoplados, permitindo uma extensibilidade sem precedentes. -configuration/: O centro nervoso do sistema, contendo o config.ini (parâmetros globais), connections.ini ( gestão de pools JDBC) e contexts.ini (configurações multi-tenant). -log/: Estrutura rotacionada de logs para auditoria completa. -storage/: Persistência de arquivos e estados dinâmicos da aplicação.

Para guias passo a passo em Bare-Metal ou Containers, consulte o Guia de Instalação e Deploy.

2. Servidor HTTP Embutido (Jetty)

Diferente de frameworks tradicionais que exigem servidores de aplicação externos (como Tomcat ou Wildfly), o RUB possui um servidor HTTP de alta performance (Jetty) embutido. Isso simplifica drasticamente a arquitetura de deploy e reduz a sobrecarga de memória.

-Configuração Centralizada: Todos os parâmetros do servidor são ajustados diretamente no config.ini. -Performance e Escalabilidade: Suporte nativo a compressão Gzip e HTTP/2 para otimização de banda. -Segurança: Configurações avançadas de SSL/TLS (HTTPS) e políticas contra ataques comuns (Clickjacking, etc). -Gestão de Recursos: Controle granular de threads de execução e limites de conexão por sessão para prevenir ataques de negação de serviço (DoS).

Aprofunde-se nas configurações em Servidor HTTP.

3. Ecossistema de Configuração e Flexibilidade

O RUB utiliza uma hierarquia de carregamento de propriedades que permite uma gestão ágil entre ambientes de desenvolvimento, homologação e produção. Através do config.ini, é possível definir desde portas de serviço até comportamentos finos de lógica de negócio, sem a necessidade de novos builds.

4. Resiliência e Alta Disponibilidade (AD)

O framework foi concebido para o "design for failure". Em arquiteturas de cluster, o RUB opera de forma coordenada para garantir que não haja pontos únicos de falha.

-Afinidade de Sessão: Implementação obrigatória de Sticky Sessions no Load Balancer. -Identidade de Instância: Cada nó é univocamente identificado por um UUID ( com.gicbrasil.rub.instance.identifier), permitindo o rastreamento preciso de transações em cluster. -Estado Compartilhado: Estratégias para compartilhamento de storage e integridade de banco de dados entre nós.

Veja como configurar seu cluster no Guia de Alta Disponibilidade.

5. Observabilidade, Telemetria e Diagnóstico

A transparência operacional é garantida por um conjunto de ferramentas que permitem enxergar o estado interno do sistema em tempo real:

-Painel de Debug Humano: Uma interface exclusiva (/debug) para inspeção de memória Heap, threads bloqueadas e status de pools de conexão. -Métricas para Máquinas: Exportação de dados no formato Prometheus para monitoramento contínuo em dashboards ( Grafana). -Logging Multinível: Separação lógica de logs em categorias (MAIN, DATA, INTF, ERRO) com enriquecimento de contexto (MDC) para rastreabilidade de transações ponta a ponta.

Consulte os guias de Observabilidade e Configuração de Logs.

6. Orquestração com o RUB Scheduler

O agendador de tarefas do RUB é um motor de execução distribuído capaz de gerenciar jobs complexos com alta confiabilidade.

-Failover de Tarefas: Se um nó do cluster falha, suas tarefas são automaticamente reatribuídas a nós saudáveis. -Afinidade por Tags: Direcionamento inteligente de carga para servidores específicos baseados em recursos disponíveis. -Controle de Concorrência: Prevenção de execuções simultâneas indesejadas através de semáforos distribuídos.

Tudo sobre o agendador está no Guia Técnico do Scheduler.