software-architecture-books/README.md
2021-06-26 00:00:00 +03:00

26 KiB

Awesome Software Architecture Books

A curated list of books on, or relevant to, Software Architecture.

People in the software industry have long argued about a definition of architecture. Ralph Johnson famously defined software architecture as "the important stuff (whatever that is)." I, subjectively, followed his definition while deciding whether or not to include a specific book.

Table of Contents

How did I make this?

I thoroughly reviewed all books tagged with software-architecture on Goodreads and picked the best objectively—see the selection criteria below. I don't think, by any means, this list is comprehensive. Yet, I'm planning to update it regularly to make it as comprehensive as possible.

Inclusion criteria

  • The book must be relevant to Software Architecture; and
  • The content is not obsolete.
  • It must be technology agnostic or applicable to a wide range of technologies; and
  • The book profile on Goodreads matches these rules:
    • An average rating of 3.5 or above; and
    • A total number of ratings equals 50 or above.
    • At least 5 written reviews.
    • A minimum length of 50 pages.

Sorting criteria

The books are sorted solely based on the number of written reviews. There are, however, other important factors worth considering. For example, the average rating, the number of ratings, and the publishing date. Yet, I don't have an idea to put all these factors in a reasonable mathematical formula. If you have any, I'd love to hear what you've got in mind.

Books

System Architecture

Title Rating Raters Published
Clean Architecture 4.23 3662 2017
Patterns of Enterprise Application Architecture 4.11 3501 2002
Building Evolutionary Architectures: Support Constant Change 3.74 705 2017
Fundamentals of Software Architecture: An Engineering Approach 4.40 364 2020
Software Architecture in Practice, 4th Edition 3.82 608 2021
Architecting for Scale: High Availability for Your Growing Applications 3.56 164 2016
Software Architecture for Developers: Volume 1 - Technical leadership and the balance with agility 3.87 332 2016
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives 4.10 205 2005
Design It!: From Programmer to Software Architect 3.68 168 2017
The Software Architect Elevator: Transforming Enterprises with Technology and Business Architecture 4.48 101 2020
Righting Software 3.79 76 2019
Analysis Patterns: Reusable Object Models 3.80 246 1996
12 Essential Skills for Software Architects 3.70 118 2011
Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture 3.78 108 2016
Documenting Software Architectures: Views and Beyond, 2nd Edition 3.68 174 2010
Software Architecture: Foundations, Theory, and Practice 3.75 65 2008
SOA: Principles of Service Design 3.72 130 2007
Service-Oriented Architecture: Concepts, Technology, and Design 3.65 170 2005

Design Patterns

Title Rating Raters Published
Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software 4.28 7574 2021
Design Patterns: Elements of Reusable Object-Oriented Software 4.19 10293 1994
Refactoring to Patterns 4.05 1399 2004
Dive Into Design Patterns 4.78 351 2019
Patterns Principles and Practices of Domain Driven Design 4.35 292 2015
Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd Edition 3.88 344 2004
Reactive Design Patterns 3.60 138 2014

Domain-Driven Design

Title Rating Raters Published At
Domain-Driven Design: Tackling Complexity in the Heart of Software 4.16 4445 2003
Domain-Driven Design Distilled 3.78 816 2016
Implementing Domain-Driven Design 4.06 934 2013
Domain-Driven Design Quickly 3.59 454 2007

Microservices

Title Rating Raters Published
Building Microservices: Designing Fine-Grained Systems, 2nd Edition 4.18 3792 2021
Monolith to Microservices: Sustaining Productivity While Detangling the System 4.28 389 2019
Microservice Patterns 4.15 333 2017
Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization 3.81 360 2016
Reactive Microservices Architecture 3.63 186 2016
Microservice Architecture: Aligning Principles, Practices, and Culture 3.50 217 2016
The Tao of Microservices 3.95 78 2017
Microservices From Design to Deployment 3.88 80 2016
Microservices AntiPatterns and Pitfalls 3.96 82 2016

Data Engineering

Title Rating Raters Published
Designing Data-Intensive Applications 4.72 4385 2015
The Model Thinker: What You Need to Know to Make Data Work for You 3.92 493 2018
Big Data: Principles and best practices of scalable realtime data systems 3.82 440 2015
Beautiful Data: The Stories Behind Elegant Data Solutions 3.65 258 2009
Data Modeling Made Simple: A Practical Guide for Business and It Professionals, 2nd Edition 3.76 74 2015

Streaming and Messaging

Title Rating Raters Published
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions 4.10 1388 2003
Making Sense of Stream Processing 4.31 143 2016
Streaming Systems 3.92 106 2018
Designing Event-Driven Systems 3.80 190 2018

Distributed Systems

Title Rating Raters Published
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services 3.58 453 2018
Distributed Systems For Fun and Profit 4.19 326 2013
Security Engineering: A Guide to Building Dependable Distributed Systems, 3rd Edition 4.19 622 2020
Database Internals: A Deep Dive into How Distributed Data Systems Work 4.26 178 2019
Distributed Systems: Principles and Paradigms, 2nd Edition 3.99 357 2016

Cloud Engineering

Title Rating Raters Published
Infrastructure as Code: Managing Servers in the Cloud 4.20 316 2016
Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment 3.57 130 2017
Cloud Native Patterns: Designing change-tolerant software 4.24 76 2019
The Practice of Cloud System Administration: Devops and SRE Practices for Web Services, Volume 2 4.38 247 2014
Beyond the Twelve-Factor App Exploring the DNA of Highly Scalable, Resilient Cloud Applications 3.54 91 2016
Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications 4.27 101 2019
Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications 4.23 66 2014
Cloud Computing: Concepts, Technology & Architecture 3.78 137 2013

Web Scalability

Title Rating Raters Published
The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, 2nd Edition 4.00 307 2015
Web Scalability for Startup Engineers 4.58 160 2015
Building Scalable Web Sites 3.73 299 2006
Scalable Internet Architectures 3.67 168 2006
Scalability Rules: 50 Principles for Scaling Web Sites 3.97 236 2011
The Art of Capacity Planning: Scaling Web Resources 3.75 212 2008

Agile

Title Rating Raters Published At
Clean Agile: Back to Basics 4.30 633 2019
Agile Software Development: Principles, Patterns, and Practices 4.25 1201 2002
The Art of Agile Development 3.96 828 2007
Agile Software Development 3.98 390 2001
Planning Extreme Programming 3.91 363 2000
Scaling Software Agility: Best Practices for Large Enterprises 3.65 168 2007
Balancing Agility and Discipline: A Guide for the Perplexed 3.59 105 2003

DevOps

Title Rating Raters Published
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations 4.33 3647 2016
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation 4.18 2969 2010
Continuous Integration: Improving Software Quality and Reducing Risk 3.81 431 2007
Devops: A Software Architect's Perspective 3.63 57 2015

General

Title Rating Raters Published
The Mythical Man-Month: Essays on Software Engineering 4.03 12295 1995
The Unicorn Project 4.13 4927 2019
Release It!: Design and Deploy Production-Ready Software 4.26 2746 2007
A Philosophy of Software Design 4.14 1516 2018
Site Reliability Engineering: How Google Runs Production Systems 4.23 1980 2016
The Software Craftsman: Professionalism, Pragmatism, Pride 4.33 769 2014
Code Simplicity: The Fundamentals of Software 3.74 501 2012
High Performance Browser Networking 4.50 671 2013
97 Things Every Software Architect Should Know: Collective Wisdom from the Experts 3.62 686 2009
High Performance Web Sites 4.15 690 2007
Software Estimation: Demystifying the Black Art 4.04 911 2006
The Design of Design: Essays from a Computer Scientist 3.76 571 2010
Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle, 3rd Edition 4.10 713 2016
Waltzing with Bears: Managing Risk on Software Projects 3.97 702 2003
Software Engineering at Google: Lessons Learned from Programming Over Time 4.19 344 2020
Ship It!: A Practical Guide to Successful Software Projects 3.72 509 2005
The Leprechauns of Software Engineering 3.84 147 2012
Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis 4.20 112 2018
The Site Reliability Workbook: Practical Ways to Implement SRE 4.34 231 2018
Beyond Software Architecture: Creating and Sustaining Winning Solutions 3.72 141 2003
37 Things One Architect Knows 4.35 100 2016
Presentation Patterns: Techniques for Crafting Better Presentations 3.94 123 2012
Chaos Engineering 4.23 112 2017
Container Security: Fundamental Technology Concepts That Protect Containerized Applications 4.48 52 2020
Composing Software 3.88 85 2018
Software Security: Building Security in 3.63 82 2006

Licence

This work is licensed under a Creative Commons Attribution 4.0 International License.