Subcapability 03 de 05 · Software Engineering & Architecture

Clean Architecture & Patterns

Clean Architecture com Dependency Rule que isola regras de negócio de frameworks, banco e UI, reduzindo custo de troca de tecnologia de projeto de seis meses para sprint.

O que está em jogo

O time quer trocar o banco de dados. Ou atualizar o framework para receber patches de segurança. Ou separar leitura de escrita para suportar o volume que o negócio atingiu. Em cada caso, a descoberta é a mesma: a regra de negócio está tão entrelaçada com a tecnologia específica que qualquer mudança de infraestrutura exige tocar no núcleo do sistema. O custo de troca sobe a cada sprint que passa sem separação de responsabilidades.

O que é, na prática

Framework e banco mudam a cada três a cinco anos. Regra de negócio dura décadas. Quando uma é refém da outra, cada migração de tecnologia vira projeto com escopo de reescrita. Sistema onde a lógica de cálculo de preço conhece o ORM específico, ou onde a regra de aprovação de crédito sabe em qual banco de dados está persistindo, tem custo de troca que cresce a cada sprint. Quando o fornecedor muda política de licenciamento, quando a tecnologia para de receber suporte de segurança, ou quando a arquitetura precisa escalar de uma forma que o banco atual não suporta, a empresa descobre que trocar uma peça exige mexer em tudo.

Como atuamos

Ganhos mensuráveis

O que muda no resultado quando essa subcapacidade amadurece.

Perguntas frequentes

Clean Architecture, Hexagonal e Onion Architecture são a mesma coisa?

São variações do mesmo princípio central: dependências apontando para o domínio, infraestrutura na borda. Clean Architecture usa a metáfora de camadas concêntricas com Entities, Use Cases, Interface Adapters e Frameworks. Hexagonal Architecture usa a metáfora de portas e adaptadores. Onion Architecture usa as mesmas camadas com nomenclatura ligeiramente diferente. Na prática, o que define o resultado é a aplicação rigorosa da regra de dependência, não o nome que o time usa.

CQRS vale para qualquer sistema?

CQRS tem custo de complexidade. Para sistemas onde leitura e escrita têm os mesmos requisitos de performance e consistência, a separação adiciona indireção sem benefício real. O padrão justifica o investimento quando leitura e escrita têm modelos de dados diferentes, escala diferente ou consistência eventual aceitável na leitura. Esses cenários aparecem em sistemas de alto volume com requisitos distintos de query e de transação.

Event Sourcing resolve todos os problemas de auditabilidade?

Event Sourcing garante auditabilidade completa com capacidade de replay, mas tem custo operacional. O estado atual de uma entidade é calculado pela sequência de eventos, o que pode ser lento para entidades com histórico longo sem snapshots. A complexidade de query em sistemas de Event Sourcing puro exige projeções (read models) separadas. O padrão é o mais adequado para domínios onde o histórico tem valor intrínseco: financeiro, saúde, contratos.

Como migrar um sistema existente para Clean Architecture?

A abordagem mais segura começa pelos módulos com maior frequência de mudança ou maior risco de troca de tecnologia. Identify the Pain First. Para cada módulo, isole a lógica de negócio em uma camada interna sem dependência de infraestrutura. Crie adaptadores para banco, APIs externas e framework. Valide com testes unitários na camada de domínio. O Strangler Fig Pattern aplica essa migração incrementalmente, sem reescrita total e sem parar o sistema.

Como o time convence a empresa a investir em separação de arquitetural?

Com o custo do estado atual em linguagem econômica. Quanto tempo levou a última troca de tecnologia? Quantos bugs surgiram em regras de negócio durante a atualização de framework? Quanto do orçamento de engenharia foi para remediação de problemas causados pelo entrelaçamento de camadas? Esses números existem e tornam o investimento em separação de responsabilidades argumentável no board com retorno calculável.

Quer clareza sobre onde investir primeiro?

Diagnóstico completo de capacidades de tecnologia com roadmap de evolução conectado ao resultado financeiro.