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.