Books for Software Architects
Books are a great way of learning and I can hardly imagine growing into an Architect without reading a single book. Find the books I recommend here. Will be updated in the future!
Learning Domain-Driven Design
Domain Driven Design is an approach to comprehending how to reflect the business complexity in the software. It allows us to understand the business well and pick the appropriate architecture patterns. It also provides strategies to use when a simple supportive domain becomes crucial to the business and its complexity skyrockets. Find a review in the blog earlier.
NoSQL Distilled
Every software system is storing data in some sort of database. Up until the earlier 2000s, the field was heavily dominated by Relational Databases: they gave us ACID guarantees, and it was all we wanted to have. The data volume grew exponentially since then, and new solutions came to deal with it. NoSQL Distilled will guide you through reasons for NoSQL, and different types of NoSQL databases and explain when to use them. A review exists on this one as well.
Designing Data-Intensive applications
Having mentioned the huge data volumes, we need to tell you about the absolute banger of a book on the topic: Designing Data-Intensive Applications. The first chapter shares the expectations of a modern system: performant, reliable and maintainable. Then the book explains how different types of databases can help with them, and what problems we face in distributed systems from unideal clocks to consensus problems.
Software Architecture in Practice
The first book I read on the Architecture path. It is important to speak the same language with your fellow Architects and Staff Engineers. The vocabulary includes requirements, tactics, responses and many more. The book is a bit boring: if you have trouble with falling asleep, it will help you. A great book nevertheless.
Documenting Software Architecture: Views & Beyond
Part of the architect's job is not only to design a system but properly document and communicate it to the stakeholders. The book will help you understand how to think about complex systems we deal with and how to provide different views to people who have different stakes in the system.
Fundamentals of Software Architecture
Neil Ford is famous for his architecture kata technique. He also wrote the fundamentals of Software Architecture. Very well-written piece to understand how to think about software complexity.
Those are the books I read personally. There is still a list of planned books as well! Here is the bullet point list:
- Software Architecture: The hard parts
- Database Internals
- Balancing coupling in Software Systems
- Building Evolutionary Architectures
- Domain-Driven Design. Tackling Complexity in the Heart of Software
Have a nice read!
The blog is hosted on GCP and uses Mailgun to send emails. The cost is ~$25 per month. Liked it? Consider helping to run the blog and Architecture Weekly newsletter at Patreon :)