π References & Further Reading
The architecture explanations on this site are based on the following books, papers, and articles. This list can also be used as a learning roadmap for deepening your understanding of each topic.
π General Architecture (Fundamentals)β
Must-read books for learning the foundational concepts, history, and patterns of software architecture.
- Patterns of Enterprise Application Architecture (Martin Fowler)
- Known as PoEAA. The source for Transaction Script, Domain Model, Active Record, Table Module, etc.
- Official Catalog (martinfowler.com)
- Software Architecture in Practice (Len Bass, Paul Clements, Rick Kazman)
- A classic on architectural quality attributes and evaluation methods.
- Fundamentals of Software Architecture (Mark Richards, Neal Ford)
- A good book comparing and organizing architectural styles (Layered, Microkernel, Microservices, etc.) from a modern perspective.
- Software Systems Architecture (Nick Rozanski, EΓ³in Woods)
- A practical guide systematizing architectural views and stakeholder analysis.
π Structural Styles (Internal Application Structure)β
Layered / Domain Model / Dependency Ruleβ
- Domain-Driven Design: Tackling Complexity in the Heart of Software (Eric Evans)
- The origin of DDD. Concepts of Domain Model, Ubiquitous Language, and Bounded Context.
- Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin)
- Detailed explanation of Clean Architecture and its relationship with SOLID principles.
- Implementing Domain-Driven Design (Vaughn Vernon)
- Known as IDDD. Rich practical explanation on how to combine Hexagonal Architecture with DDD.
- Hexagonal Architecture (Alistair Cockburn)
- The original article by the proponent of Ports & Adapters.
- The Onion Architecture (Jeffrey Palermo)
- The proposal article for Onion Architecture.
Other Structural Patternsβ
- Pattern-Oriented Software Architecture (POSA) Series
- Detailed systematization of structural patterns like Microkernel and Pipe & Filter.
- The Reactive Manifesto
- Definition of the four characteristics of Reactive Architecture (Responsive, Resilient, Elastic, Message Driven).
- Refactoring to Patterns (Joshua Kerievsky)
- A practical book emphasizing design decisions behind pattern application.
π System Topologies (System Configuration & Granularity)β
- Building Microservices (Sam Newman)
- The standard textbook on microservices design, operations, and splitting criteria.
- Monolith to Microservices (Sam Newman)
- Explanation of migration patterns from Monolith to Microservices (e.g., Strangler Fig).
- Microservices (James Lewis, Martin Fowler)
- The article that defined Microservices.
- Serverless Architectures on AWS (Peter Sbarski)
- Patterns and practices for Serverless Architecture.
- Site Reliability Workbook (Google SRE Team)
- Rich in operational design and practical examples for large-scale distributed systems.
π Integration Styles (Communication & Coordination)β
- Enterprise Integration Patterns (Gregor Hohpe, Bobby Woolf)
- The bible of integration patterns like Messaging, Pub/Sub, and Routing.
- Official Catalog (enterpriseintegrationpatterns.com)
- Microservices Patterns (Chris Richardson)
- Explanation of microservice-specific implementation patterns like Saga, API Gateway, and CQRS/ES.
- Distributed Systems Observability (Cindy Sridharan)
- Provides practical knowledge on measurement and tracing in distributed systems.
πΎ Data Architecture (Data & Analytics)β
- CQRS Documents (Greg Young)
- Explanatory document by the proponent of CQRS.
- Designing Data-Intensive Applications (Martin Kleppmann)
- A masterpiece for deeply understanding data distribution, replication, partitioning, and batch/stream processing mechanisms.
- Data Mesh Principles (Zhamak Dehghani)
- Explanation of the Data Mesh concept and its four principles.
- The Log: What every software engineer should know about real-time data's unifying abstraction (Jay Kreps)
- Explanation of log-centric architecture (foundation of Kappa Architecture) by a Kafka developer.
- Streaming Systems (Tyler Akidau et al.)
- Foundation for deeply understanding stream processing and consistency models.
π€ Cross-cutting & Organization (Operations & Organization)β
- Team Topologies (Matthew Skelton, Manuel Pais)
- Must-read on the relationship between team structure and architecture (Reverse Conway's Law).
- Accelerate (Nicole Forsgren, Jez Humble, Gene Kim)
- Scientific analysis of how DevOps capabilities (Four Keys) affect organizational performance.
- Site Reliability Engineering (Google SRE Team)
- The origin of operational architectures like SRE, SLO/SLI, and Error Budgets.
- The Twelve-Factor App (Adam Wiggins)
- 12 practices that modern SaaS/Web applications should follow.
- The Phoenix Project (Gene Kim)
- Understanding DevOps philosophy and organizational improvement through a narrative format.