Refresh Your Home For Fall
Buy New
To see product details, add this item to your cart.
Ships from: Amazon.com
Sold by: Amazon.com
To see product details, add this item to your cart. You can always remove it later.
Shipper / Seller
Amazon.com
Amazon.com
Shipper / Seller
Amazon.com
Returns
30-day refund / replacement
30-day refund / replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Read full return policy
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
To see product details, add this item to your cart. You can always remove it later.
paperback Used - Very Good Ships fast! 20252nd Edition paperback Used - Very Good Ships fast! 20252nd Edition See less
Access codes and supplements are not guaranteed with used items.
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • Fundamentals of Software Architecture: A Modern Engineering Approach

Follow the authors

Get new release updates & improved recommendations
Something went wrong. Please try your request again later.

Fundamentals of Software Architecture: A Modern Engineering Approach

4.6 out of 5 stars (97)

Purchase options and add-ons

Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This updated edition provides a comprehensive overview of software architecture's many aspects, with five new chapters covering the latest insights from the field. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming architecture, governance, data, generative AI, team topologies, and many other topics.

Mark Richards and Neal Ford—hands-on practitioners who have taught software architecture classes professionally for years—focus on architecture principles that apply across all technology stacks. You'll explore software architecture in a modern light, taking into account all the innovations of the past decade.

This book examines:

  • Architecture styles and patterns: Microservices, modular monoliths, microkernels, layered architectures, and many more
  • Components: Identification, coupling, cohesion, partitioning, and granularity
  • Soft skills: Effective team management, collaboration, business engagement models, negotiation, presentations, and more
  • Modernity: Engineering practices and operational approaches that have changed radically in the past few years, including cloud considerations and generative AI
  • Architecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture

Frequently bought together

This item: Fundamentals of Software Architecture: A Modern Engineering Approach
$52.40
Get it as soon as Sunday, Sep 20
In Stock
Ships from and sold by Amazon.com.
+
$56.86
Get it as soon as Sunday, Sep 20
In Stock
Ships from and sold by Amazon.com.
+
$43.99
Get it as soon as Monday, Sep 21
In Stock
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
Choose items to buy together.

Customers also bought or read

Loading...

From the brand


From the Publisher

Fundamentals of Software Architecture

From the Preface

Mathematicians create theories based on axioms, assumptions for things indisputably true. Software architects build axioms as well, but the software world is, well, softer than mathematics: fundamental things continue to change at a rapid pace in the software world.

The software development ecosystem exists in a constant state of dynamic equilibrium: while it exists in a balanced state at any given point in time, it exhibits dynamic behavior over the long term. A great modern example of the nature of this ecosystem follows the ascension of containerization and the attendant changes wrought: tools like Kubernetes didn’t exist a decade ago, yet now entire software conferences exist to service its users. The software ecosystem changes fractally: one small change causes another small change; when repeated hundreds of time, it generates a new ecosystem.

Architects have an important responsibility to question assumptions and axioms left over from previous eras. Many of the books about software architecture were written in an era that only barely resembles the current world. In fact, the authors believe that we must question fundamental axioms on a regular basis, in light of improved engineering practices, operational ecosystems, software development processes—​everything that makes up the messy, dynamic equilibrium where architects and developers work each day.

Careful observers of software architecture over time witnessed an evolution of capabilities. Starting with the engineering practices of Extreme Programming, continuing with continuous delivery, the DevOps revolution, microservices, containerization, and now cloud-based resources, all of these innovations led to new capabilities and trade-offs. As capabilities changed, so did architects’ perspectives on the industry. For many years, the tongue-in-cheek definition of software architecture was “the stuff that’s hard to change later.” Later, the microservices architecture style appeared, where change is a first-class design consideration.

Each new era requires new practices, tools, measurements, patterns, and a host of other changes. This book looks at software architecture in a modern light, taking into account all the innovations from the last decade, along with some new metrics and measures suited to today’s new structures and perspectives.

The subtitle of our book is “A Modern Engineering Approach.” Developers have long wished to change software development from a craft, where skilled artisans can create one-off works, to an engineering discipline, which implies repeatability, rigor, and effective analysis. While software engineering still lags behind other types of engineering disciplines by many orders of magnitude (to be fair, software is a very young discipline compared to most other types of engineering), architects have made huge improvements, which we’ll discuss. In particular, modern Agile engineering practices have allowed great strides in the types of systems that architects design.

We also address the critically important issue of trade-off analysis. As a software developer, it’s easy to become enamored with a particular technology or approach. But architects must always soberly assess the good, bad, and ugly of every choice, and virtually nothing in the real world offers convenient binary choices—​everything is a trade-off. Given this pragmatic perspective, we strive to eliminate value judgments about technology and instead focus on analyzing trade-offs to equip our readers with an analytic eye toward technology choices.

This book won’t make someone a software architect overnight—​it’s a nuanced field with many facets. We want to provide existing and burgeoning architects a good modern overview of software architecture and its many aspects, from structure to soft skills. While this book covers well-known patterns, we take a new approach, leaning on lessons learned, tools, engineering practices, and other input. We take many existing axioms in software architecture and rethink them in light of the current ecosystem, and design architectures, taking the modern landscape into account.

What's new in the second edition:

When we set out to write the second edition of Fundamentals of Software Architecture, we had a few ideas of things we wanted to flesh out and improve from the first edition, but like a lot of software projects, it kept growing.

One of our met goals was to make the styles sections more consistent, making them more useful for comparisons. We also made some changes to our star ratings to add sections and a few new categories, and added new sections on cloud considerations, data topologies, team topologies, and governance for each architectural style. Along the way we made major additions to a number of chapters on popular topics, such as Chapters 15 and 18, and added a new chapter (Chapter 11) on the modular monolith architectural style.

We also added several entirely new chapters covering architectural patterns in Chapter 20, the intersections of architecture in Chapter 26, and revisiting our laws of software architecture (of which there is a new corollary and a new law) in Chapter 27.

Head First Software Architecture: A Learner's Guide to Architectural Thinking
Fundamentals of Software Architecture: A Modern Engineering Approach
Communication Patterns: A Guide for Developers and Architects
The Software Architect Elevator: Redefining the Architect's Role in the Digit...
Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distribu...
Facilitating Software Architecture: Empowering Teams to Make Architectural De...
Customer Reviews
4.7 out of 5 stars 68
4.6 out of 5 stars 97
4.1 out of 5 stars 22
4.6 out of 5 stars 410
4.6 out of 5 stars 737
4.7 out of 5 stars 12
What is it? Head First Software Architecture teaches you how to think architecturally and explores the unique challenges of software architecture, using a visually rich format to engage your mind. A comprehensive overview of aspects of software architecture including architectural characteristics, architectural patterns, diagramming and presenting architecture, evolutionary architecture, and more. A comprehensive guide to communicating software architecture. Learn how to successfully present your architecture and get stakeholders to jump on board. Learn how to combine organizational and technical knowledge in order to effect change in your company’s structure and processes. There are many hard parts in software architecture that force you to choose among various compromises. This book teaches you how to think critically about the trade-offs. Explore how teams can collaborate on the architectures of their systems to ensure that everyone and everything is working toward the same goal.
What you'll learn The distinction between architecture and design; the relationship between code, components, and architectural styles; and how to work with common architectural styles. How to use architecture patterns and make architectural decisions; how to use coupling, cohesion, partitioining, and granuality; soft skills; and engineering practices. How to design appropriate diagrams and documentation, and master written, verbal, and nonverbal communication to succeed in technical settings. How to work with an organization as a whole, connecting the IT engine room to the penthouse, where the business strategy is defined. How to determine service granularity, manage workflows and orchestration, manage and decouple contracts, and manage distributed transactions to how to optimize operational characteristics. How to create a collaborative, decentralized mindset that allows everyone to do architecture and build the best systems they've ever experienced.
Who is this book for? If you're a software developer looking for a quick on-ramp to software architecture, this handy guide is a great place to start. Senior software developers, aspiring and 'accidental' software architects, and software architects looking to solidify their knowledge. Software developers and software architects who want to learn how to communicate their architectures effectively. Software architects, senior developers, enterprise architects and senior technologists. Software architects who are ready to delve into the 'hard parts' of software architecture. Those who are in a position to affect change in how their software is architected and designed and are inclined to try something new.
Who else is it for? Those who want to gain an understanding of architectural dimensions and understand the differences between architecture and design. Those in other roles that need to understand the main concepts of software architecture. Those in other roles that work with software architecture and want to understand diagrams and documentation further. CTOs, senior technical architects and IT managers who are devising an IT strategy that impacts the way the organization works. Those in other roles who would like to understand more about the complex decisions in software architecture. Traditional decision-makers (aka architects) who know that ‘doing architecture the way we always have’ no longer works, as well as developers keen to step up and take on architecture responsibility.

Editorial Reviews

About the Author

Mark Richards is an experienced hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems. He's been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. He's the author of numerous O'Reilly technical books and videos, including Fundamentals of Software Architecture, Software Architecture: The Hard Parts (both with Neal Ford) several books on microservices, the Software Architecture Fundamentals video series, the Enterprise Messaging video series and was a contributing author to 97 Things Every Software Architect Should Know. A speaker and trainer, he's given talks on a variety of enterprise-related technical topics at hundreds of conferences and user groups around the world.

Neal Ford is a director, software architect, and meme wrangler at Thoughtworks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He's an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal's authored eight books (and counting), a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developers conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, Nealford.com.

Product details

  • Publisher ‏ : ‎ O'Reilly Media
  • Publication date ‏ : ‎ April 22, 2025
  • Edition ‏ : ‎ 2nd
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 543 pages
  • ISBN-10 ‏ : ‎ 1098175514
  • ISBN-13 ‏ : ‎ 978-1098175511
  • Item Weight ‏ : ‎ 1.9 pounds
  • Dimensions ‏ : ‎ 7 x 1.25 x 9 inches
  • Best Sellers Rank: #24,942 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.6 out of 5 stars (97)

About the authors

Follow authors to get new release updates, plus improved recommendations.