

Mark Richards is a Director and Sr. Technical Architect at Collaborative Consulting, LLC.
Meer over de auteursFundamentals of Software Architecture
An Modern Engineering Approach
Paperback Engels 2025 2e druk 9781098175511Samenvatting
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
Specificaties
Lezersrecensies
Inhoudsopgave
Preface to the Second Edition
Preface to the First Edition
Conventions Used in This Book
Supplemental Material
O’Reilly Online Learning
How to Contact Us
Acknowledgments
Acknowledgments from Mark Richards
Acknowledgments from Neal Ford
1. Introduction
Defining Software Architecture
Laws of Software Architecture
Expectations of an Architect
Make Architecture Decisions
Continually Analyze the Architecture
Keep Current with Latest Trends
Ensure Compliance with Decisions
Understand Diverse Technologies
Know the Business Domain
Possess Interpersonal Skills
Understand and Navigate Politics
Roadmap
I. Foundations
2. Architectural Thinking
Architecture Versus Design
Strategic Versus Tactical Decisions
Level of Effort
The Significance of Trade-Offs
Technical Breadth
The 20-Minute Rule
Developing a Personal Radar
Analyzing Trade-Offs
Understanding Business Drivers
Balancing Architecture and Hands-On Coding
There’s More to Architectural Thinking
3. Modularity
Modularity Versus Granularity
Defining Modularity
Measuring Modularity
Cohesion
Coupling
Core Metrics
Distance from the Main Sequence
Connascence
From Modules to Components
4. Architectural Characteristics Defined
Architectural Characteristics and System Design
Architectural Characteristics (Partially) Listed
Operational Architectural Characteristics
Structural Architectural Characteristics
Cloud Characteristics
Cross-Cutting Architectural Characteristics
Trade-Offs and Least Worst Architecture
5. Identifying Architectural Characteristics
Extracting Architectural Characteristics from Domain Concerns
Composite Architectural Characteristics
Extracting Architectural Characteristics
Working with Katas
Kata: Silicon Sandwiches
Explicit Characteristics
Implicit Characteristics
Limiting and Prioritizing Architectural Characteristics
6. Measuring and Governing Architecture Characteristics
Measuring Architecture Characteristics
Operational Measures
Structural Measures
Process Measures
Governance and Fitness Functions
Governing Architecture Characteristics
Fitness Functions
7. The Scope of Architectural Characteristics
Architectural Quanta and Granularity
Synchronous Communication
The Impact of Scoping
Scoping and Architectural Style
Kata: Going Green
Scoping and the Cloud
8. Component-Based Thinking
Defining Logical Components
Logical Versus Physical Architecture
Creating a Logical Architecture
Identifying Core Components
Assigning User Stories to Components
Analyzing Roles and Responsibilities
Analyzing Architectural Characteristics
Restructuring Components
Component Coupling
Static Coupling
Temporal Coupling
The Law of Demeter
Case Study: Going, Going, Gone—Discovering Components
II. Architecture Styles
9. Foundations
Styles Versus Patterns
Fundamental Patterns
Big Ball of Mud
Unitary Architecture
Client/Server
Architecture Partitioning
Kata: Silicon Sandwiches—Partitioning
Monolithic Versus Distributed Architectures
Fallacy #1: The Network Is Reliable
Fallacy #2: Latency Is Zero
Fallacy #3: Bandwidth Is Infinite
Fallacy #4: The Network Is Secure
Fallacy #5: The Topology Never Changes
Fallacy #6: There Is Only One Administrator
Fallacy #7: Transport Cost Is Zero
Fallacy #8: The Network Is Homogeneous
The Other Fallacies
Team Topologies and Architecture
On to Specific Styles
10. Layered Architecture Style
Topology
Style Specifics
Layers of Isolation
Adding Layers
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
When to Use
When Not to Use
Examples and Use Cases
11. The Modular Monolith Architecture Style
Topology
Style Specifics
Monolithic Structure
Modular Structure
Module Communication
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
When to Use
When Not to Use
Examples and Use Cases
12. Pipeline Architecture Style
Topology
Style Specifics
Filters
Pipes
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
When to Use
When Not to Use
Examples and Use Cases
13. Microkernel Architecture Style
Topology
Style Specifics
Core System
Plug-In Components
The Spectrum of “Microkern-ality”
Registry
Contracts
Data Topologies
Cloud Considerations
Common Risks
Volatile Core
Plug-In Dependencies
Governance
Team Topology Considerations
Architecture Characteristics Ratings
Examples and Use Cases
14. Service-Based Architecture Style
Topology
Style Specifics
Service Design and Granularity
User Interface Options
API Gateway Options
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
Examples and Use Cases
15. Event-Driven Architecture Style
Topology
Style Specifics
Events Versus Messages
Derived Events
Triggering Extensible Events
Asynchronous Capabilities
Broadcast Capabilities
Event Payload
The Swarm of Gnats Antipattern
Error Handling
Preventing Data Loss
Request-Reply Processing
Mediated Event-Driven Architecture
Data Topologies
Monolithic Database Topology
Domain Database Topology
Dedicated Data Topology
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
Choosing Between Request-Based and Event-Based Models
Examples and Use Cases
16. Space-Based Architecture Style
Topology
Style Specifics
Processing Unit
Virtualized Middleware
Messaging Grid
Data Grid
Processing Grid
Deployment Manager
Data Pumps
Data Writers
Data Readers
Data Topologies
Cloud Considerations
Common Risks
Frequent Reads from the Database
Data Synchronization and Consistency
High Data Volumes
Data Collisions
Governance
Team Topology Considerations
Style Characteristics
Examples and Use Cases
Concert Ticketing System
Online Auction System
17. Orchestration-Driven Service-Oriented Architecture
Topology
Style Specifics
Taxonomy
Reuse…and Coupling
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
Examples and Use Cases
18. Microservices Architecture
Topology
Style Specifics
Bounded Context
Granularity
Data Isolation
API Layer
Operational Reuse
Frontends
Communication
Choreography and Orchestration
Transactions and Sagas
Data Topologies
Cloud Considerations
Common Risks
Governance
Team Topology Considerations
Style Characteristics
Examples and Use Cases
19. Choosing the Appropriate Architecture Style
Shifting “Fashion” in Architecture
Decision Criteria
Monolith Case Study: Silicon Sandwiches
Modular Monolith
Microkernel
Distributed Case Study: Going, Going, Gone
20. Architectural Patterns
Reuse
Separating Domain and Operational Coupling
Communication
Orchestration Versus Choreography
CQRS
Infrastructure
Broker-Domain Pattern
III. Techniques and Soft Skills
21. Architectural Decisions
Architectural Decision Antipatterns
The Covering Your Assets Antipattern
Groundhog Day Antipattern
Email-Driven Architecture Antipattern
Architectural Significance
Architectural Decision Records
Basic Structure
Example
Storing ADRs
ADRs as Documentation
Using ADRs for Standards
Using ADRs with Existing Systems
Leveraging Generative AI and LLMs in Architectural Decisions
22. Analyzing Architecture Risk
Risk Matrix
Risk Assessments
Risk Storming
Phase 1: Identification
Phase 2: Consensus
Phase 3: Risk Mitigation
User-Story Risk Analysis
Risk-Storming Use Case
Availability
Elasticity
Security
Summary
23. Diagramming Architecture
Diagramming
Tools
Diagramming Standards: UML, C4, and ArchiMate
Diagram Guidelines
Summary
24. Making Teams Effective
Collaboration
Constraints and Boundaries
Architect Personalities
The Control-Freak Architect
The Armchair Architect
The Effective Architect
How Much Involvement?
Team Warning Signs
Process Loss
Pluralistic Ignorance
Leveraging Checklists
Developer Code-Completion Checklist
Unit and Functional Testing Checklist
Software-Release Checklist
Providing Guidance
Summary
25. Negotiation and Leadership Skills
Negotiation and Facilitation
Negotiating with Business Stakeholders
Negotiating with Other Architects
Negotiating with Developers
The Software Architect as a Leader
The 4 Cs of Architecture
Be Pragmatic, Yet Visionary
Leading Teams by Example
Integrating with the Development Team
Summary
26. Architectural Intersections
Architecture and Implementation
Operational Concerns
Structural Integrity
Architectural Constraints
Architecture and Infrastructure
Architecture and Data Topologies
Database Topology
Architectural Characteristics
Data Structure
Read/Write Priority
Architecture and Engineering Practices
Architecture and Team Topologies
Architecture and Systems Integration
Architecture and the Enterprise
Architecture and the Business Environment
Architecture and Generative AI
Incorporating Generative AI into Architecture
Generative AI as an Architect Assistant
Summary
27. The Laws of Software Architecture, Revisited
First Law: Everything in Software Architecture Is a Trade-Off
Shared Library Versus Shared Service
Synchronous Versus Asynchronous Messaging
First Corollary: Missing Trade-Offs
Second Corollary: You Can’t Do It Just Once
Second Law: Why Is More Important Than How
Out of Context Antipattern
The Spectrum Between Extremes
Parting Words of Advice
Discussion Questions
Index
About the Authors
Rubrieken
- advisering
- algemeen management
- coaching en trainen
- communicatie en media
- economie
- financieel management
- inkoop en logistiek
- internet en social media
- it-management / ict
- juridisch
- leiderschap
- marketing
- mens en maatschappij
- non-profit
- ondernemen
- organisatiekunde
- personal finance
- personeelsmanagement
- persoonlijke effectiviteit
- projectmanagement
- psychologie
- reclame en verkoop
- strategisch management
- verandermanagement
- werk en loopbaan