Fundamentals of Software Architecture

A broad introduction to software architecture covering architectural styles, component design, and the soft skills architects need. Mark Richards and Neal Ford explain patterns like microservices, event-driven, and service-based architectures, along with how to evaluate the trade-offs between them.
The second edition adds content on data architecture, contracts, and managing distributed systems. It works well both as a reference for working architects and as a study guide if you’re preparing for the role.