Top Related Projects
500 Lines or Less
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
A curated list of engineering blogs
A curated and opinionated list of resources for Chief Technology Officers, with the emphasis on startups
Quick Overview
The mhadidg/software-architecture-books repository is a curated list of free and paid books on software architecture. It serves as a comprehensive resource for developers, architects, and tech enthusiasts looking to expand their knowledge in the field of software architecture. The repository is organized by topics and includes both general and specific architectural concepts.
Pros
- Extensive collection of books covering various aspects of software architecture
- Includes both free and paid resources, catering to different preferences and budgets
- Well-organized structure with clear categorization of topics
- Regularly updated with new additions and community contributions
Cons
- Lacks detailed reviews or ratings for each book
- Some links may become outdated over time if not regularly maintained
- Does not provide direct download links for free books, only references
- May be overwhelming for beginners due to the large number of resources
Note: As this is not a code library, the code example and quick start sections have been omitted.
Competitor Comparisons
500 Lines or Less
Pros of 500lines
- Contains practical, real-world code examples of various software systems
- Offers in-depth explanations of each project's architecture and implementation
- Provides a hands-on approach to learning software architecture concepts
Cons of 500lines
- Limited to 500 lines of code per project, which may oversimplify complex systems
- Focuses on specific implementations rather than broader architectural principles
- May become outdated as technologies and best practices evolve
Code comparison
500lines (Python example from the "Crawler" project):
def process_link(self, url):
if url.startswith('/'):
url = self.base_url + url
if url.startswith(self.base_url):
self.q.put(url)
software-architecture-books does not contain code examples, as it is a curated list of book recommendations.
Summary
500lines offers practical, code-focused examples of software architecture, while software-architecture-books provides a comprehensive list of resources for learning architectural concepts. 500lines is better suited for hands-on learners who prefer to study real implementations, whereas software-architecture-books caters to those seeking in-depth theoretical knowledge from various authors and experts in the field.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Pros of system-design-primer
- Comprehensive coverage of system design concepts with practical examples
- Active community and regular updates
- Includes interactive coding challenges and exercises
Cons of system-design-primer
- Focuses primarily on system design, less emphasis on broader software architecture principles
- May be overwhelming for beginners due to its extensive content
Code Comparison
While both repositories primarily focus on educational content rather than code, system-design-primer does include some code examples:
system-design-primer:
class LRUCache:
def __init__(self, capacity):
self.capacity = capacity
self.cache = OrderedDict()
def get(self, key):
if key not in self.cache:
return -1
self.cache.move_to_end(key)
return self.cache[key]
software-architecture-books does not contain code examples, as it is a curated list of book recommendations.
Summary
system-design-primer offers a more hands-on approach to learning system design with practical examples and exercises, while software-architecture-books provides a curated list of resources for broader software architecture concepts. The choice between the two depends on the learner's specific needs and learning style.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Pros of developer-roadmap
- Provides comprehensive visual roadmaps for various tech roles
- Regularly updated with current industry trends and technologies
- Offers interactive versions of roadmaps on the project website
Cons of developer-roadmap
- Focuses on breadth rather than depth of knowledge
- May overwhelm beginners with the sheer amount of information
- Lacks detailed explanations or resources for each topic
Code comparison
Not applicable, as both repositories primarily contain documentation and resources rather than code.
Summary
developer-roadmap offers a broad overview of skills and technologies needed for various tech roles, presented in visual roadmaps. It's regularly updated and provides interactive versions on its website. However, it may lack depth and can be overwhelming for beginners.
software-architecture-books, on the other hand, focuses specifically on software architecture and provides a curated list of books on the subject. It offers more in-depth resources but is limited to a single aspect of software development.
Both repositories serve different purposes: developer-roadmap is ideal for those seeking a comprehensive overview of skills needed in various tech roles, while software-architecture-books is better suited for those looking to deepen their knowledge in software architecture specifically.
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Pros of awesome-scalability
- Focuses specifically on scalability, providing a comprehensive resource for this crucial aspect of software architecture
- Includes a wide range of topics, from system design to specific technologies and tools
- Regularly updated with new resources and information
Cons of awesome-scalability
- Less emphasis on general software architecture principles compared to software-architecture-books
- May not provide as much depth on individual topics as dedicated books
- Lacks structured learning paths for beginners
Code comparison
While both repositories are primarily curated lists of resources, awesome-scalability does include some code snippets in its explanations. Here's an example from the "Scalability" section:
def create_user(username, email):
user = User(username=username, email=email)
db.session.add(user)
db.session.commit()
software-architecture-books, being a list of book recommendations, doesn't include code snippets.
Summary
awesome-scalability is an excellent resource for developers focused on building scalable systems, offering a wide range of up-to-date information. However, software-architecture-books provides a more comprehensive overview of software architecture principles through curated book recommendations. The choice between the two depends on the specific learning goals and preferences of the user.
A curated list of engineering blogs
Pros of engineering-blogs
- Provides a comprehensive list of engineering blogs from various companies and individuals
- Regularly updated with new blog entries and resources
- Offers a wide range of topics and perspectives in software engineering
Cons of engineering-blogs
- Lacks structured categorization or organization of blog entries
- Does not provide in-depth analysis or summaries of the listed blogs
- May include outdated or inactive blog links
Code comparison
engineering-blogs:
* [Airbnb Engineering](https://medium.com/airbnb-engineering)
* [Amazon](https://developer.amazon.com/blogs)
* [Artsy Engineering](https://artsy.github.io/)
software-architecture-books:
## Software Architecture Books
- [Designing Data-Intensive Applications](https://www.amazon.com/dp/1449373321)
- [Clean Architecture](https://www.amazon.com/dp/0134494164)
- [Building Microservices](https://www.amazon.com/dp/1491950358)
The engineering-blogs repository focuses on listing blog URLs, while software-architecture-books provides a curated list of book recommendations with links to purchase them. The code structure in engineering-blogs is simpler, using only bullet points, whereas software-architecture-books uses headings and nested lists for better organization.
A curated and opinionated list of resources for Chief Technology Officers, with the emphasis on startups
Pros of awesome-cto
- Broader scope, covering various aspects of CTO responsibilities beyond software architecture
- More frequently updated, with recent contributions
- Includes links to articles, tools, and resources beyond just books
Cons of awesome-cto
- Less focused on software architecture specifically
- May be overwhelming for those solely interested in architecture concepts
- Lacks detailed descriptions or reviews of the listed resources
Code comparison
Not applicable, as both repositories are primarily curated lists of resources without significant code content.
Additional notes
software-architecture-books:
- Focused specifically on software architecture books
- Provides brief descriptions and ratings for each book
- Organized by categories within software architecture
awesome-cto:
- Covers a wide range of topics relevant to CTOs
- Includes sections on leadership, management, and technical skills
- Offers a mix of books, articles, and online resources
Both repositories serve as valuable curated lists for technology leaders, with software-architecture-books being more specialized in its focus on architecture literature, while awesome-cto provides a broader overview of resources for CTOs and technical managers.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Software Architecture Books
A comprehensive list of books on 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
- What is this? (important)
- How did I make this?
- What should I read?
- Inclusion criteria
- Sorting criteria
- Books
- Find me at Goodreads
What is this?
This is NOT a recommendation list. When I made this, I intended for a comprehensive list excluding low-profile booksâsee inclusion criteria below. There was a simple reason behind that: I'm not a subject-matter expert on all these topics. In fact, I not a subject-matter expert on even a single topic of these. More importantly, I don't know your experience level nor your preferences. Some people prefer theoretical over practical books (I do). Others prefer foundational over comprehensive books or dry over engaging books or art-based over engineering-based books. Some people even enjoy verbose over concise books. Or and or and or.
How did I make this?
I thoroughly reviewed all books tagged with software-architecture on Goodreads and applied a simple algorithmic rulesâsee the inclusion criteria below. I don't think the list is perfectly comprehensive. Yet, I'm planning to update it regularly to make it as comprehensive as possible.
What should I read?
Don't be overwhelmed by the number of books on each subject. Practically speaking, you are supposed to read a few books on the subjects of your interest. Deciding what to read is your business. Personally, I start by reading a couple of reviews on Goodreads and examine the book table of content, if available. When in doubt, I read more reviews over the internet from blogs and the like. Alternatively, you may go with the Goodreads community preferences and start from the top of each list if you don't have the time to read reviews.
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 | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Clean Architecture | 9780134494166 | 4.23 | 3662 | 2017 |
Patterns of Enterprise Application Architecture | 9780321127426 | 4.11 | 3501 | 2002 |
Building Evolutionary Architectures: Support Constant Change | 9781491986363 | 3.74 | 705 | 2017 |
Fundamentals of Software Architecture: An Engineering Approach | 9781492043454 | 4.40 | 364 | 2020 |
Software Architecture in Practice, 4th Edition | 0785342154955 | 3.82 | 608 | 2021 |
Architecting for Scale: High Availability for Your Growing Applications | 9781491943397 | 3.56 | 164 | 2016 |
Software Architecture for Developers: Volume 1 - Technical leadership and the balance with agility | 9798652551568 | 3.87 | 332 | 2016 |
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives | 9780321112293 | 4.10 | 205 | 2005 |
Design It!: From Programmer to Software Architect | 9781680502091 | 3.68 | 168 | 2017 |
The Software Architect Elevator: Transforming Enterprises with Technology and Business Architecture | 9781492077541 | 4.48 | 101 | 2020 |
Righting Software | 9780136524038 | 3.79 | 76 | 2019 |
Analysis Patterns: Reusable Object Models | 9780201895421 | 3.80 | 246 | 1996 |
12 Essential Skills for Software Architects | 9780321717290 | 3.70 | 118 | 2011 |
Software Architecture for Developers: Volume 2 - Visualise, document and explore your software architecture | 9798652551568 | 3.78 | 108 | 2016 |
Documenting Software Architectures: Views and Beyond, 2nd Edition | 9780201703726 | 3.68 | 174 | 2010 |
Software Architecture: Foundations, Theory, and Practice | 9780470167748 | 3.75 | 65 | 2008 |
SOA: Principles of Service Design | 9780132344821 | 3.72 | 130 | 2007 |
Service-Oriented Architecture: Concepts, Technology, and Design | 9780131858589 | 3.65 | 170 | 2005 |
Design Patterns
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software | 9780596007126 | 4.28 | 7574 | 2021 |
Design Patterns: Elements of Reusable Object-Oriented Software | 9780201633610 | 4.19 | 10293 | 1994 |
Refactoring to Patterns | 0785342213355 | 4.05 | 1399 | 2004 |
Dive Into Design Patterns | missing | 4.78 | 351 | 2019 |
Patterns Principles and Practices of Domain Driven Design | 9781118714706 | 4.35 | 292 | 2015 |
Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd Edition | 9780321247148 | 3.88 | 344 | 2004 |
Reactive Design Patterns | 9781617291807 | 3.60 | 138 | 2014 |
Domain-Driven Design
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Domain-Driven Design: Tackling Complexity in the Heart of Software | 9780321125217 | 4.16 | 4445 | 2003 |
Domain-Driven Design Distilled | 9780134434421 | 3.78 | 816 | 2016 |
Implementing Domain-Driven Design | 9780321834577 | 4.06 | 934 | 2013 |
Domain-Driven Design Quickly | 9781411609259 | 3.59 | 454 | 2007 |
Patterns, Principles, and Practices of Domain-Driven Design | 9781118714706 | 4.36 | 302 | 2015 |
Microservices
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Building Microservices: Designing Fine-Grained Systems, 2nd Edition | 9781491950357 | 4.18 | 3792 | 2021 |
Monolith to Microservices: Sustaining Productivity While Detangling the System | 9781492047841 | 4.28 | 389 | 2019 |
Microservice Patterns | 9781617294549 | 4.15 | 333 | 2017 |
Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization | 9781491965948 | 3.81 | 360 | 2016 |
Reactive Microservices Architecture | 9781491959343 | 3.63 | 186 | 2016 |
Microservice Architecture: Aligning Principles, Practices, and Culture | 9781491959794 | 3.50 | 217 | 2016 |
The Tao of Microservices | 9781617293146 | 3.95 | 78 | 2017 |
Microservices From Design to Deployment | missing | 3.88 | 80 | 2016 |
Microservices AntiPatterns and Pitfalls | 9781491963319 | 3.96 | 82 | 2016 |
Data Engineering
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Designing Data-Intensive Applications | 9781449373320 | 4.72 | 4385 | 2015 |
The Model Thinker: What You Need to Know to Make Data Work for You | 9780465094622 | 3.92 | 493 | 2018 |
Big Data: Principles and best practices of scalable realtime data systems | 9781617290343 | 3.82 | 440 | 2015 |
Beautiful Data: The Stories Behind Elegant Data Solutions | 9780596157111 | 3.65 | 258 | 2009 |
Data Modeling Made Simple: A Practical Guide for Business and It Professionals, 2nd Edition | 9780977140060 | 3.76 | 74 | 2015 |
Streaming and Messaging
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions | 0785342200683 | 4.10 | 1388 | 2003 |
Making Sense of Stream Processing | 9781491940105 | 4.31 | 143 | 2016 |
Streaming Systems | 9781491983874 | 3.92 | 106 | 2018 |
Designing Event-Driven Systems | 9781492038221 | 3.80 | 190 | 2018 |
Distributed Systems
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services | 9781491983645 | 3.58 | 453 | 2018 |
Distributed Systems For Fun and Profit | missing | 4.19 | 326 | 2013 |
Security Engineering: A Guide to Building Dependable Distributed Systems, 3rd Edition | 9780470068526 | 4.19 | 622 | 2020 |
Database Internals: A Deep Dive into How Distributed Data Systems Work | 9781492040347 | 4.26 | 178 | 2019 |
Distributed Systems: Principles and Paradigms, 2nd Edition | 9780132392273 | 3.99 | 357 | 2016 |
Cloud Engineering
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Infrastructure as Code: Managing Servers in the Cloud | 9781491924358 | 4.20 | 316 | 2016 |
Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment | 9781491984307 | 3.57 | 130 | 2017 |
Cloud Native Patterns: Designing change-tolerant software | 9781617294297 | 4.24 | 76 | 2019 |
The Practice of Cloud System Administration: Devops and SRE Practices for Web Services, Volume 2 | 9780133478525 | 4.38 | 247 | 2014 |
Beyond the Twelve-Factor App Exploring the DNA of Highly Scalable, Resilient Cloud Applications | 9781491944011 | 3.54 | 91 | 2016 |
Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications | 9781492050285 | 4.27 | 101 | 2019 |
Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications | 9781621140368 | 4.23 | 66 | 2014 |
Cloud Computing: Concepts, Technology & Architecture | 9780133387520 | 3.78 | 137 | 2013 |
Web Scalability
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, 2nd Edition | 9780137030422 | 4.00 | 307 | 2015 |
Web Scalability for Startup Engineers | 9780071843652 | 4.58 | 160 | 2015 |
Building Scalable Web Sites | 9780596102357 | 3.73 | 299 | 2006 |
Scalable Internet Architectures | 9780672326998 | 3.67 | 168 | 2006 |
Scalability Rules: 50 Principles for Scaling Web Sites | 9780321753885 | 3.97 | 236 | 2011 |
The Art of Capacity Planning: Scaling Web Resources | 9780596518578 | 3.75 | 212 | 2008 |
Agile
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
Clean Agile: Back to Basics | 9780135781869 | 4.30 | 633 | 2019 |
Agile Software Development: Principles, Patterns, and Practices | 9780135974445 | 4.25 | 1201 | 2002 |
The Art of Agile Development | 9780596527679 | 3.96 | 828 | 2007 |
Agile Software Development | 9780201699692 | 3.98 | 390 | 2001 |
Planning Extreme Programming | 9780201710915 | 3.91 | 363 | 2000 |
Scaling Software Agility: Best Practices for Large Enterprises | 9780321458193 | 3.65 | 168 | 2007 |
Balancing Agility and Discipline: A Guide for the Perplexed | 0785342186123 | 3.59 | 105 | 2003 |
DevOps
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations | 9781942788003 | 4.33 | 3647 | 2016 |
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation | 9780321601919 | 4.18 | 2969 | 2010 |
Continuous Integration: Improving Software Quality and Reducing Risk | 9780321336385 | 3.81 | 431 | 2007 |
Devops: A Software Architect's Perspective | 9780134049847 | 3.63 | 57 | 2015 |
General
Title | ISBN | Rating | Raters | Published |
---|---|---|---|---|
The Pragmatic Programmer: From Journeyman to Master | 9780201616224 | 4.32 | 17379 | 1999 |
The Mythical Man-Month: Essays on Software Engineering | 9780201835953 | 4.03 | 12295 | 1995 |
The Unicorn Project | 9781942788768 | 4.13 | 4927 | 2019 |
Release It!: Design and Deploy Production-Ready Software | 9780978739218 | 4.26 | 2746 | 2007 |
A Philosophy of Software Design | 9781732102200 | 4.14 | 1516 | 2018 |
Site Reliability Engineering: How Google Runs Production Systems | 9781491929124 | 4.23 | 1980 | 2016 |
The Software Craftsman: Professionalism, Pragmatism, Pride | 9780134052502 | 4.33 | 769 | 2014 |
Code Simplicity: The Fundamentals of Software | 9781449313890 | 3.74 | 501 | 2012 |
High Performance Browser Networking | 9781449344764 | 4.50 | 671 | 2013 |
97 Things Every Software Architect Should Know: Collective Wisdom from the Experts | 9780596522698 | 3.62 | 686 | 2009 |
High Performance Web Sites | 9780596529307 | 4.15 | 690 | 2007 |
Software Estimation: Demystifying the Black Art | 9780735605350 | 4.04 | 911 | 2006 |
The Design of Design: Essays from a Computer Scientist | 9780201362985 | 3.76 | 571 | 2010 |
Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle, 3rd Edition | 9780735618794 | 4.10 | 713 | 2016 |
Waltzing with Bears: Managing Risk on Software Projects | 9780932633606 | 3.97 | 702 | 2003 |
Software Engineering at Google: Lessons Learned from Programming Over Time | 9781492082798 | 4.19 | 344 | 2020 |
Ship It!: A Practical Guide to Successful Software Projects | 9780974514048 | 3.72 | 509 | 2005 |
The Leprechauns of Software Engineering | 9782954745503 | 3.84 | 147 | 2012 |
Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis | 9781680502725 | 4.20 | 112 | 2018 |
The Site Reliability Workbook: Practical Ways to Implement SRE | 9781492029502 | 4.34 | 231 | 2018 |
Beyond Software Architecture: Creating and Sustaining Winning Solutions | 9780201775945 | 3.72 | 141 | 2003 |
37 Things One Architect Knows | 9781537082981 | 4.35 | 100 | 2016 |
Presentation Patterns: Techniques for Crafting Better Presentations | 9780321820808 | 3.94 | 123 | 2012 |
Chaos Engineering | 9781491992395 | 4.23 | 112 | 2017 |
Container Security: Fundamental Technology Concepts That Protect Containerized Applications | 9781492056706 | 4.48 | 52 | 2020 |
Composing Software | 9781661212568 | 3.88 | 85 | 2018 |
Software Security: Building Security in | 9780321356703 | 3.63 | 82 | 2006 |
14 Habits of Highly Productive Developers | 9781735266534 | 4.05 | 195 | 2020 |
Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.
Top Related Projects
500 Lines or Less
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
A curated list of engineering blogs
A curated and opinionated list of resources for Chief Technology Officers, with the emphasis on startups
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot