Here are my top books and resources on software architecture. All of these are really great sources of knowledge for anyone who's dealing with software architecture. And that should be anyone who develops software. Since software architecture is a team responsibility and should be a team effort.
Software Architecture for Developers
"Software Architecture for Developers" by Simon Brown is a great introduction for agile software architecture.
Volume 1 is a guide to lightweight software architecture and technical leadership
Volume 2 focusses on visualizing software architecture using the C4 model.
Clean Architecture
"Clean Architecture: A Craftsman's Guide to Software Structure and Design" by Robert C. Martin imparts basic knowledge about different programming paradigms (functional, object oriented) and design principles.
Enterprise Integration Patterns
Integration is no fun but important nonetheless. So no way around the Enterprise Integration Patters by Gregor Hohpe.
37 Things One Architect Knows About IT Transformation
37 Things One Architect Knows About IT Transformation by Gregor Hohpe is about the role of software architects and the "architect elevator" they are riding in. I like it especially because it contains lots of knowledge about communication, organization and transformation.
Implementing Domain-Driven Design
"Implementing Domain-Driven Design" by Vaughn Vernon is a great practical guide on how to adopt and implement domain driven design in your application.
arc42 Template
arc42 is the well known template for documenting and communicating software and system architectures.
Martin Fowlers Software Architecture Guide
Martin Fowlers Software Architecture Guide contains lots of articles and infos on software architecture by Martin Fowler and others.
Path to a Software Architect
Justin Miller outlines the Path to a Software Architect. This includes activities, skills and a technology roadmap for architects.
Independent Systems Architecture
The Independent Systems Architecture describes principles for microservices and self contained systems based on best practices and experiences.
Self Contained Systems
Self Contained System Architecture is an architecture approach that splits functionality in many independent web applications. This approach is related to microservices but differs in some points.
OWASP Architecture and Design Principles
OWASP Architecture and Design Principles for secure software. Secure software design and architecture right from the first day of your project.
Patterns for API Design
A collection of API Patterns to design REST APIs that developers love.
Big Ball of Mud
A classic in software architecture. The most common software architecture since 20 years, the Big Ball of Mud by Brian Foote and Joseph Yoder.
JAM Stack
If you deal with web content, dynamic apps and websites check out the JAM Stack. The JAM Stack is about prerendered markup, APIs, JavaScript and no web servers.
Micro Frontends
If you're in a microservice architecture be careful not to build a big frontend monolith on top. Here Micro Frontends come to the rescue and help you build and integrate frontends for microservices.
OAuth 2.0 Playground
The OAuth 2.0 Playground is the best place to get to know the different OAuth 2.0 flows and how they work in detail.
Serverless Land
Serverless Land is great to get into event driven applications powered by Serverless functions. Focused on AWS but can be applied to any serverless environment.
Mind the gap
This list is by far not complete and no replacement for proper training and practice. I'm sure there are lots of valuable books and resources out there which I don't know of. Please share them since I'm curious to get to know them.
Top comments (2)
Great post.
Very interesting! Thanks