Software Architecture Fundamentals 2nd Edition
A Modern Engineering Approach
Paperback, Kindle, ePub
Publisher:O'Reilly Media Inc
ISBN-13: 9781098175504
What started as a minor update turned into basically a rewrite--we went from about 450 pages to almost 600 in the new edition. Most of the new material either reflected gaps in the original because of the changing ecosystem (like Modular Monoliths) and added a ton of new material on microservices, event-driven architectures, and a lot of popular topics.
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
Table of Contents:
- Introduction
- Foundations
- Architectural Thinking
- Modularity
- Architectural Characteristics Defined
- Identifying Architectural Characteristics
- Measuring and Governing Architecture Characteristics
- The Scope of Architectural Characteristics
- Component-Based Thinking
- II. Architecture Styles
- Foundations
- Layered Architecture Style
- The Modular Monolith Architecture
- Pipeline Architecture Style
- Microkernel Architecture Style
- Service-Based Architecture Style
- Event-Driven Architecture Style
- Space-Based Architecture Style
- Orchestration-Driven Service-Oriented Architecture
- Microservices Architecture
- Choosing the Appropriate
- Architecture Style
- Architectural Patterns
- III. Techniques and Soft Skills
- Architectural Decisions
- Analyzing Architecture Risk
- Diagramming Architecture
- Making Teams Effective
- Negotiation and Leadership Skills
- Architectural Intersections
- The Laws of Software Architecture, Revisited


