Livros Arquitetura de Software

Aqui estão algumas recomendações de livros que abordam os padrões de arquitetura de software mais relevantes:
Abrangentes e introdutórios 
  • Arquitetura Limpa: O Guia do Artesão para Estrutura e Design de Software (Robert C. Martin): Também conhecido como “Uncle Bob”, o autor discute os princípios fundamentais que se aplicam a todos os tipos de arquitetura, incluindo a arquitetura hexagonal. Este livro ajuda a formar a base para entender por que e como diferentes padrões se encaixam.
  • Fundamentals of Software Architecture: An Engineering Approach (Mark Richards e Neal Ford): Aborda a arquitetura de forma moderna, explorando características, padrões arquiteturais (incluindo microsserviços) e componentes. É um guia completo que cobre os princípios que se aplicam a todas as tecnologias. 
Microsserviços e sistemas distribuídos
  • Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith (Sam Newman): Se você trabalha com monolitos e precisa entender a transição para microsserviços, este livro é uma referência valiosa. Explica os padrões evolutivos e os desafios envolvidos.
  • Practical Microservices: Build Event-Driven Architectures with Event Sourcing and CQRS (Ethan Garofolo): Ideal para quem quer aprender a implementar arquiteturas orientadas a eventos e os padrões de event sourcing e CQRS no contexto de microsserviços. Oferece uma abordagem prática com foco nesses conceitos.
  • Arquitetura de software distribuído: Boas práticas para um mundo de microsserviços (Flávio Lisboa): Livro em português que mostra como organizar aplicações em microsserviços usando diferentes linguagens de programação. 
Padrões específicos (DDD, CQRS, Event Sourcing) 
  • Padrões de Arquitetura de Aplicações Corporativas (Martin Fowler): Embora seja um livro mais antigo, muitos dos padrões fundamentais que ele descreve são aplicáveis e relevantes até hoje, influenciando outras arquiteturas. É um clássico para qualquer desenvolvedor ou arquiteto.
  • Domain-Driven Design: Tackling Complexity in the Heart of Software (Eric Evans): Este livro é a base do DDD, que é fundamental para organizar a lógica de negócio em microsserviços, CQRS e arquitetura hexagonal. Entender DDD é essencial para aplicar esses outros padrões com sucesso.
  • Implementing Domain-Driven Design (Vaughn Vernon): Uma visão mais pragmática de como aplicar DDD, abordando táticas e estratégias que se conectam a conceitos como microsserviços, CQRS e event sourcing.
  • Designing Data-Intensive Applications (Martin Kleppmann): Embora não se concentre apenas em arquitetura, este livro oferece um entendimento profundo dos desafios de dados em sistemas distribuídos, o que é crucial para implementar CQRS e event sourcing. 
A melhor abordagem é começar com livros mais fundamentais, como os de Robert C. Martin e Mark Richards, para construir uma base sólida. Depois, aprofunde-se em livros específicos sobre microsserviços, DDD, CQRS e event sourcing para entender a aplicação prática desses padrões. 
Palavras-chave: monolito, microsserviços, cliente-servidor, hexagonal, CQRS, event-driven e event sourcing