Arquitetura Cruzeiro Do Sul
Arquitetura Cruzeiro do Sul — o que é e como funciona na prática
Arquitetura Cruzeiro do Sul é um modelo de projeto de software brasileiro focado em sistemas legados que precisam coexistir com microsserviços modernos. A ideia central é simples: você tem um sistema monolítico legado que ninguém quer tocar porque qualquer mudança quebra algo, e precisa introduzir novas funcionalidades sem reescrever tudo do zero. A arquitetura cruzeiro do sul propõe uma camada de adaptação entre o legado e o novo, usando estratégias como strangler fig pattern, sidecar services e event bridging para gradualmente deslocar a responsabilidade do monolito. O nome vem de um projeto brasileiro aberto que documentou casos reais de empresas no Brasil migrando ERPs legados (principalmente Totvs Protheus e sistemas customizados em delphi) para arquiteturas mais modernas. Não é uma metodologia fechada com certificação. É um conjunto de padrões práticos que funcionaram em contextos específicos.
Como aplicar arquitetura cruzeiro do sul num projeto real
Você começa mapeando todas as entradas e saídas do sistema legado. Quais APIs externas ele consome? Quais tabelas do banco ele lê e escreve com frequência? Quais relatórios são gerados? Anote tudo. Esse inventário é a base de tudo. Sem ele, você vai perder horas tentando adivinhar onde estão os pontos de acoplamento. Depois, identifique os módulos mais isolados do legado. São eles que vão para os novos serviços primeiro. Não comece pelo módulo crítico do negócio. Comece por algo que tem interface bem definida e baixo acoplamento. Um exemplo típico: um serviço de notificação por e-mail ou SMS. Você cria um novo microsserviço para isso, faz o legado chamar via HTTP ou fila, e vai cortando conexões aos poucos. A camada de adaptação é onde a maioria erra. Não tente fazer uma API Gateway monolítica que vire um segundo legado. Use um proxy reverso simples no início, com roteamento baseado em caminho. Exemplo: requisições para /api/novo-servico-v1 vão para o microsserviço, tudo o mais continua indo para o legado. Quando o novo serviço estiver estável, você refina o roteamento. Isso já resolve 80% dos casos em ambientes corporativos brasileiros.
O banco de dados é o ponto mais delicado. Legados brasileiros frequentemente compartilham tabelas entre módulos que deveriam ser independentes. Eu vi um caso em que dois módulos do Protheus escreviam na mesma tabela de estoque sem nenhuma coordenação. Quando migrei um deles para um serviço separado, simplesmente começou a haver inconsistência de estoque porque o novo serviço não sabia das regras de negócio embutidas no trigger do legacy. A solução foi manter a tabela compartilhada inicialmente e construir um serviço de sincronização lateral que lia as mudanças via CDC (change data capture) no banco e propagava para o novo serviço. Demorou três semanas para implementar e testar, mas foi a única maneira que funcionou sem downtime.

Arquitetura cruzeiro do sul — padrões mais usados
Strangler fig pattern continua sendo o mais utilizado. Você vai substituindo partes do legado por novos serviços até que o legado original fique cada vez menor, até virar apenas um adapter. Funciona bem porque permite migração incremental sem big bang rewrite. Event bridging é outro padrão essencial. Legados geralmente não têm eventos nativos para coisas que acontecem neles. Você adiciona uma camada que captura mudanças no banco (via triggers, CDC, ou polling de timestamps) e publica como eventos em uma fila. Os novos serviços consomem esses eventos. Kafka e RabbitMQ funcionam bem aqui, dependendo da carga. Sidecar services são úteis quando você precisa adicionar funcionalidades transversais como logging, métricas, ou validação sem tocar no código legado. O sidecar roda junto com o processo legado e intercepta tráfego de rede. Kubernetes torna isso trivial, mas em ambientes on-premise tradicionais exige configuração manual de proxies como Envoy ou nginx.
O que a arquitetura cruzeiro do sul não resolve
Não é solução para legado que não tem documentação alguma e nenhum desenvolvedor que entenda o negócio. Se você não consegue mapear os fluxos de dados, nenhuma arquitetura vai ajudar. O problema aí é de descoberta, não de arquitetura. Também não é rápida. Migrações desse tipo tipicamente levam de 6 a 18 meses para sistemas de médio porte no Brasil. Projetos maiores podem levar anos. Se alguém te promete migração completa em 3 meses, está mentindo ou simplificando demais o escopo. Sistemas muito acoplados em nível de banco de dados — onde múltiplos módulos compartilham as mesmas tabelas sem separação lógica — são os mais difíceis. Nesses casos, a arquitetura cruzeiro do sul sozinha não basta. Você precisa combinar com refatoração de domínio (DDD) para separar adequadamente as responsabilidades antes de tentar migrar para microsserviços. Fazer o contrário gera microsserviços que replicam os mesmos acoplamentos do legado, só que distribuídos.
Se o seu sistema legado é realmente antigo (cobol, delphi 5, acess com backend firebird sem documentação), considere começar com uma camada de abstração de dados e API REST bem definida sobre o legado, antes de qualquer coisa. Isso dá tempo para a equipe entender o que o sistema faz enquanto você constrói a nova arquitetura por cima.

Pitfalls comuns que eu vi acontecer
A equipe de infraestrutura às vezes cria dependência de ferramentas complexas muito cedo. Você não precisa de service mesh, observabilidade distribuída completa, e CI/CD para cada microsserviço no dia um. Comece com o mínimo funcional. Adicione complexidade conforme o problema exigir. Eu vi dois projetos em São Paulo paralisarem por causa de decisões arquiteturais prematuras que nunca foram usadas. Outro erro frequente é subestimar o trabalho de testes. Cada novo serviço precisa de testes de integração contra o legado durante toda a migração. Isso significa que você precisa manter um ambiente de staging com dados realistas. Dados sintéticos não funcionam bem porque legados brasileiros frequentemente têm regras de negócio codificadas que dependem de dados específicos do cliente. A comunicação entre legado e novos serviços também merece atenção. HTTP simples funciona na maioria dos casos, mas se você tiver alta latência entre o datacenter legado e a nuvem, considere batching de requisições ou mensageria assíncrona. Latência de 200ms por chamada HTTP soma rápido quando um usuário dispara 50 requisições em sequência numa tela de cadastro.
Para quem quer estudar mais, o repositório principal do projeto arquitetura cruzeiro do sul está disponível publicamente e contém cases reais, diagrams, e código de exemplo. Recomendo começar pelos case studies antes de tentar aplicar os padrões, porque cada contexto exige ajustes diferentes.
Galeria
-
Cruzeiro do Sul - Bruno Moraes Arquitetura -
G1 - Prédios com arquitetura alemã se destacam em Cruzeiro do Sul ... -
Dabus Arquitetura - Universidade Cruzeiro do Sul - Manual Franquia