Academic · Recommended reading
References that show up in my articles, projects and master's research. If you want to study software architecture with solid foundations, start here.
Mark Richards and Neal Ford · O'Reilly (2020)
The starting point. It lays out what software architecture is, architectural characteristics, the main styles — from layered to microservices — and the role of the people who make these decisions. It is also where the idea that everything in architecture is a trade-off comes from.
Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani · O'Reilly (2021)
The natural follow-up, focused on the hard decisions of distributed systems: how to break up a monolith, set service granularity, deal with distributed data and choose between orchestration and choreography.
Robert C. Martin (Uncle Bob) · Prentice Hall (2017)
The principles behind systems that are independent of frameworks, databases and UI: the dependency rule, separating policy from details, and the SOLID principles applied to architecture.
Eric Evans · Addison-Wesley (2003)
The book that put the domain at the heart of software: ubiquitous language, entities, value objects, aggregates and bounded contexts. The foundation for modularizing systems by business rather than by technology.
Susan J. Fowler · O'Reilly (2016)
Production-readiness standards — stability, reliability, scalability, fault tolerance, monitoring and documentation — to assess whether a service is truly ready. One of the foundations of my master's research.