Arquitetura do Sistema
A arquitetura do Lunno foi desenhada sob os princípios de Isolamento Multi-tenant, Alta Disponibilidade e Segurança by Design. O objetivo é processar eventos de governança em tempo real sem adicionar latência ou fricção ao pipeline de CI/CD dos clientes.
Design Pattern: O backend do Lunno utiliza conceitos de Arquitetura Hexagonal (Ports and Adapters). Isso garante que a regra de negócio central (Policy Engine) seja totalmente agnóstica em relação às ferramentas externas (Azure DevOps, GitHub ou Slack).
Visão de Alto Nível (Fluxo de Dados)
O Lunno opera de forma passiva e assíncrona, atuando como um “escuta” inteligente do ecossistema de engenharia:
- Event Ingestion (Webhook Layer): Recebe os payloads do Azure DevOps (PR criado, Build finalizado, Release aprovada).
- Policy Engine (Core): Avalia os metadados recebidos contra os Quality Gates configurados no Workspace da Squad.
- Data Persistence: Grava o resultado da avaliação de forma imutável em um banco de dados isolado criptograficamente.
- Notification & Action: Alerta o time via ferramentas de comunicação ou bloqueia a GMUD caso uma anomalia de compliance seja detectada.
Tech Stack (Padrão Enterprise)
A escolha da stack tecnológica reflete a necessidade de manter a aplicação ágil para novas features, mas estrita em relação à tipagem e auditoria.
| Camada | Tecnologia | Propósito no Ecossistema |
|---|---|---|
| Frontend (Dashboard) | Next.js 14 + React | Interface executiva e administrativa. Uso de SSR/RSC para performance e SEO técnico interno. |
| Frontend (Docs) | Nextra 4 + MDX | Portal de Governança (este site), operando de forma totalmente desacoplada do core transacional. |
| Backend (Core APIs) | Node.js + TypeScript | Processamento de regras de negócio com tipagem estática rigorosa (evitando runtime errors em deploys de clientes). |
| Banco de Dados | PostgreSQL | Armazenamento relacional robusto com suporte avançado a JSONB para flexibilidade nos metadados de GMUD. |
Princípios de Resiliência
Para atuar em ambientes de alta criticidade (como o setor bancário/fintechs), a arquitetura do Lunno assegura que:
- Isolamento de Falhas: Se a API de uma ferramenta de terceiro (ex: Azure DevOps) apresentar lentidão, o Lunno processa as validações de forma assíncrona (filas), sem travar a interface do usuário.
- Privacidade de Código-Fonte: O Lunno consome apenas metadados (títulos de PR, IDs de Work Items, cobertura percentual de testes). O código-fonte do cliente (Intellectual Property) nunca transita ou é armazenado pelos nossos servidores.