Arquitetura Hexagonal e DDD Construa softwares que evoluem com propósito
André Campos
Prefácio
Este livro não nasceu em uma sala de aula, mas em trincheiras digitais. Minha jornada começou em 2017, não em uma grande empresa de tecnologia, mas como freelancer, criando features para servidores de jogos como o The Forgotten Server, desenvolvendo plugins/temas para blogs em WordPress sobre os mais variados temas e até fazendo a manutenção de projetos em CakePHP/Laravel. Foi uma escola de "fazer acontecer", na raça.
A transição para o mundo corporativo deu-se, de fato, por meio de uma consultoria, a Alvarez & Marsal, na qual mergulhei em projetos legados e senti pela primeira vez o abismo que pode existir entre o código e o negócio. Lembro de reuniões em que a comunicação com as áreas de negócio simplesmente não fluía. A conversa só engrenava quando eu voltava para a minha mesa e falava com outros desenvolvedores. Ali, não precisávamos de "tradução", porque nosso único idioma em comum eram os nomes das classes e das tabelas no banco de dados. Essa dor se tornou ainda mais real em um projeto de e-commerce. O sistema de promoções era um monstro de comandos 'if' aninhados. Cada nova campanha de marketing era um parto que arriscava quebrar o sistema. O resultado? O marketing frustrado com a lentidão nos lançamentos e o time de desenvolvimento com medo de mexer no próprio código.
Foi nesse cenário que a pergunta se tornou inevitável: como poderíamos, como desenvolvedores, construir um software que o negócio de fato entenda sem que ele se torne um campo minado a cada nova demanda?
A resposta, para mim, veio com os princípios do Domain-Driven Design (DDD) e da Arquitetura Hexagonal. Este livro é o resultado prático dessa jornada. Menos teoria acadêmica e mais prática de quem já sentiu a dor. Em vez de diagramas UML complexos, usaremos um domínio que todos entendemos — o delivery de comida — para comparar abordagens, pesar trade-offs e construir, passo a passo, uma arquitetura que não só funciona, mas também é um prazer de manter e evoluir.
Este não é um manual de regras, mas um convite à reflexão. Um guia para que você e seu time possam construir software que cresce de forma saudável, resiliente e, principalmente, alinhado ao negócio que o software serve. Espero que cada capítulo seja o início de uma boa conversa.
Sobre o livro
Seu código já virou um "prato de espaguete"? Se a resposta for sim, relaxa. Você não está sozinho. Projetos, por menores que pareçam, são um campo minado de regras de negócio escondidas: descontos que mudam em cima da hora, taxas de entrega que dependem do CEP e integrações com gateways de pagamento que resolvem cair justamente no sábado à noite. Sem uma arquitetura que coloque ordem na casa, o projeto cresce torto e o time inteiro começa a ter medo de mexer nas partes críticas do código.
Para resolver esse cenário, este livro foca na aplicação prática dos princípios de Domain-Driven Design (DDD) e da Arquitetura Hexagonal. Usaremos um domínio que todos entendemos — o delivery de comida — para construir, passo a passo, uma arquitetura que não só funciona, mas também é um prazer de manter e evoluir.
Como o livro está organizado
Este livro apresenta uma abordagem comparativa, sempre mostrando duas alternativas:
- A Abordagem Problemática: o famoso "jeito rápido" que funciona bem até quebrar na sexta à noite.
- A Abordagem Recomendada: uma forma organizada de modelar o domínio para que ele aguente as mudanças sem drama.
Todos os capítulos seguem uma cadência simples:
1. Contexto real com dores e sintomas que você provavelmente já viu
2. Comparação de soluções com código comentado e trade-offs explícitos
3. Critérios práticos para decidir qual caminho faz sentido no seu cenário
4. Checklist prático e desafio rápido para colocar o aprendizado em movimento assim que terminar cada capítulo
O livro constrói, passo a passo, uma visão completa da Arquitetura Hexagonal aplicada ao delivery: núcleos ricos, portas bem definidas e regras de negócio encapsuladas.
Tecnologias e versões
- Java 17 com records e tipos modernos
- Sem frameworks — foco nas ideias, não nas ferramentas
- Todo o código será em Java puro, sem frameworks para evitar interpretações incorretas
- Código em inglês (nomes de classes, métodos, variáveis), comentários e explicações em português brasileiro.
Sumário
- 1. Introdução — O caos e a ordem
- 2. Núcleo do domínio — pedidos que se protegem sozinhos
- 3. Preços e cálculos — mantendo centavos sob controle
- 4. Portas de saída — persistência sem poluir o domínio
- 5. Portas de entrada — orquestrando o domínio sem controller obeso
- 6. Pagamentos e reembolsos — tratar exceções como fluxo normal
- 7. Atribuição de entregadores — matching que respeita a operação
- 8. Descontos e promoções — regras voláteis sob controle
- 9. Qualidade e testes — construindo confiança na Arquitetura Hexagonal
- 10. Evolução arquitetural — crescer sem travar o produto
- 11. Observabilidade — os olhos do hexágono
- 12. Mensageria confiável — garantindo a entrega com Transactional Outbox
- 13. Segurança sem acoplamento — protegendo o domínio de invasores
- 14. Resiliência avançada — protegendo o núcleo contra falhas externas
- 15. Transações distribuídas — Sagas e o fim do "tudo ou nada"
- 16. Conclusão — mantendo o delivery vivo e saudável
- 17. Glossário
Dados do produto
- Número de páginas:
- 263
- ISBN:
- 9788555194368
- Data publicação:
- 08/2026