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.
Follow the authors
OK
Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
Purchase options and add-ons
There are no easy decisions in software architecture. Instead, there are many hard parts--difficult problems or issues with no best practices--that force you to choose among various compromises. With this book, you'll learn how to think critically about the trade-offs involved with distributed architectures.
Architecture veterans and practicing consultants Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani discuss strategies for choosing an appropriate architecture. By interweaving a story about a fictional group of technology professionals--the Sysops Squad--they examine everything from how to determine service granularity, manage workflows and orchestration, manage and decouple contracts, and manage distributed transactions to how to optimize operational characteristics, such as scalability, elasticity, and performance.
By focusing on commonly asked questions, this book provides techniques to help you discover and weigh the trade-offs as you confront the issues you face as an architect.
- Analyze trade-offs and effectively document your decisions
- Make better decisions regarding service granularity
- Understand the complexities of breaking apart monolithic applications
- Manage and decouple contracts between services
- Handle data in a highly distributed architecture
- Learn patterns to manage workflow and transactions when breaking apart applications
- ISBN-101492086894
- ISBN-13978-1492086895
- Edition1st
- PublisherO'Reilly Media
- Publication dateNovember 30, 2021
- LanguageEnglish
- Dimensions7 x 0.75 x 9.25 inches
- Print length459 pages
Frequently bought together

Customers who viewed this item also viewed
- Fundamentals of Software Architecture: A Modern Engineering ApproachPaperbackFREE Shipping by AmazonGet it as soon as Wednesday, Sep 16
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable SystemsPaperbackFREE Shipping by AmazonGet it as soon as Wednesday, Sep 16
- A Philosophy of Software Design, 2nd EditionPaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Wednesday, Sep 16
- AI Engineering: Building Applications with Foundation ModelsPaperbackFREE Shipping by AmazonGet it as soon as Wednesday, Sep 16
- Building Microservices: Designing Fine-Grained SystemsPaperbackFREE Shipping by AmazonGet it as soon as Wednesday, Sep 16
- Head First Software Architecture: A Learner's Guide to Architectural ThinkingPaperbackFREE Shipping by AmazonGet it as soon as Wednesday, Sep 16Only 12 left in stock (more on the way).
Customers also bought or read
- Fundamentals of Software Architecture: A Modern Engineering Approach#1 Best SellerComputer Programming Logic
Paperback$52.40$52.40FREE delivery Wed, Sep 16 - Fundamentals of Software Architecture: An Engineering Approach
Paperback$72.00$72.00$3.99 delivery Sep 18 - 23 - Building Microservices: Designing Fine-Grained Systems
Paperback$44.49$44.49FREE delivery Wed, Sep 16 - Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy
Paperback$37.49$37.49FREE delivery Wed, Sep 16 - Head First Software Architecture: A Learner's Guide to Architectural Thinking
Paperback$53.35$53.35FREE delivery Wed, Sep 16 - A Philosophy of Software Design, 2nd Edition#1 Best SellerSoftware Testing
Paperback$19.92$19.92Delivery Wed, Sep 16 - Software Engineering at Google: Lessons Learned from Programming Over Time
Paperback$32.15$32.15Delivery Wed, Sep 16 - Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
Paperback$30.29$30.29Delivery Wed, Sep 16 - Building Evolutionary Architectures: Automated Software Governance
Paperback$55.36$55.36FREE delivery Wed, Sep 16 - Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Systems Using Kubernetes
Paperback$45.76$45.76FREE delivery Wed, Sep 16 - Domain-Driven Design: Tackling Complexity in the Heart of Software
Hardcover$51.75$51.75FREE delivery Wed, Sep 16 - Understanding Distributed Systems, Second Edition: What every developer should know about large distributed applications
Paperback$35.00$35.00FREE delivery Wed, Sep 16 - Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))
Hardcover$45.15$45.15FREE delivery Wed, Sep 16 - The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise
Paperback$47.70$47.70FREE delivery Wed, Sep 16 - The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)
Hardcover$45.97$45.97FREE delivery Wed, Sep 16 - AI Engineering: Building Applications with Foundation Models#1 Best SellerEnterprise Applications
Paperback$52.40$52.40FREE delivery Wed, Sep 16 - Site Reliability Engineering: How Google Runs Production Systems#1 Best SellerNetwork Disaster & Recovery Administration
Paperback$23.26$23.26Delivery Wed, Sep 16 - Cloud Application Architecture Patterns: Designing, Building, and Modernizing for the Cloud
Paperback$18.67$18.67Delivery Wed, Sep 16 - Mastering API Architecture: Design, Operate, and Evolve API-Based Systems
Paperback$38.55$38.55FREE delivery Wed, Sep 16 - The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups
Paperback$34.49$34.49Delivery Wed, Sep 16 - Systems Performance (Addison-Wesley Professional Computing Series)#1 Best SellerComputer Performance Optimization
Paperback$57.41$57.41FREE delivery Wed, Sep 16 - Design Patterns: Elements of Reusable Object-Oriented Software
Hardcover$24.00$24.00Delivery Sep 28 - Oct 1 - Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition
Paperback$24.29$24.29Delivery Wed, Sep 16 - Patterns of Distributed Systems (Addison-Wesley Signature Series (Fowler))
Paperback$35.44$35.44FREE delivery Wed, Sep 16 - Crafting Engineering Strategy: How Thoughtful Decisions Solve Complex Problems
Paperback$23.85$23.85Delivery Wed, Sep 16
From the brand
-
Software Development
-
Software Architecture
-
Software Engineering
-
More From O'Reilly
-
Sharing the knowledge of experts
O'Reilly's mission is to change the world by sharing the knowledge of innovators. For over 40 years, we've inspired companies and individuals to do new things (and do them better) by providing the skills and understanding that are necessary for success.
Our customers are hungry to build the innovations that propel the world forward. And we help them do just that.
From the Publisher
From the Preface
When two of your authors, Neal and Mark, were writing the book Fundamentals of Software Architecture, we kept coming across complex examples in architecture that we wanted to cover but that were too difficult. Each one offered no easy solutions but rather a collection of messy trade-offs. We set those examples aside into a pile we called “The Hard Parts.” Once that book was finished, we looked at the now gigantic pile of hard parts and tried to figure out: why are these problems so difficult to solve in modern architectures?
We took all the examples and worked through them like architects, applying trade-off analysis for each situation, but also paying attention to the process we used to arrive at the trade-offs. One of our early revelations was the increasing importance of data in architecture decisions: who can/should access data, who can/should write to it, and how to manage the separation of analytical and operational data.
To that end, we asked experts in those fields to join us, which allows this book to fully incorporate decision making from both angles: architecture to data and data to architecture.
The result is this book: a collection of difficult problems in modern software architecture, the trade-offs that make the decisions hard, and ultimately an illustrated guide to show you how to apply the same trade-off analysis to your own unique problems.
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...
|
|
|---|---|---|---|---|---|---|
|
Add to Cart
|
Add to Cart
|
Add to Cart
|
Add to Cart
|
Add to Cart
|
Add to Cart
|
|
| Customer Reviews |
4.7 out of 5 stars 68
|
4.6 out of 5 stars 96
|
4.1 out of 5 stars 22
|
4.6 out of 5 stars 408
|
4.6 out of 5 stars 736
|
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 in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark served as the president of the New England Java Users Group from 1999 through 2003. He is the author of numerous technical books and videos, including the Fundamentals of Software Architecture, Software Architecture Fundamentals Video Series, and several books and videos on microservices as well as enterprise messaging. Mark is also a conference speaker and trainer and has spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.
Product details
- Publisher : O'Reilly Media
- Publication date : November 30, 2021
- Edition : 1st
- Language : English
- Print length : 459 pages
- ISBN-10 : 1492086894
- ISBN-13 : 978-1492086895
- Item Weight : 7.4 ounces
- Dimensions : 7 x 0.75 x 9.25 inches
- Best Sellers Rank: #66,392 in Books (See Top 100 in Books)
- #4 in Software Design Tools
- #7 in Computer Systems Analysis & Design (Books)
- #10 in Software Testing
- Customer Reviews:
About the authors

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 in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of DeveloperToArchitect.com, a free website devoted to helping developers in the journey to becoming a software architect. He is the author of numerous technical books and videos as well as a conference speaker and trainer, having spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.

Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a software company and a community of passionate, purpose-led individuals, who thinks disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He is an internationally recognized expert on software development and delivery, especially in the intersection of agile engineering techniques and software architecture. Neal has authored magazine articles, eight books (and counting), dozens of video presentations, and spoken at hundreds of developers conferences worldwide. His topics include software architecture, continuous delivery, functional programming, cutting edge software innovations, and includes a business-focused book and video on improving technical presentations

Discover more of the author’s books, see similar authors, read book recommendations and more.

Zhamak Dehghani is a technologist, focusing on distributed systems and data architecture in large and complex environments. She’s a member of multiple technology advisory boards. Zhamak is an advocate for the decentralization of all things, including architecture, data, and ultimately power. She is the founder of data mesh.














