Software Architecture
by Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
Software Development
Book Details
Book Title
Software Architecture
Author
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
Subject
software-development
Table of Contents
- Preface
- Chapter 1. What Happens When There Are No “Best Practices”?
- Why “The Hard Parts”?
- Giving Timeless Advice About Software Architecture
- The Importance of Data in Architecture
- Architectural Decision Records
- Architecture Fitness Functions
- Architecture Versus Design: Keeping Definitions Simple
- Introducing the Sysops Squad Saga
- Part I. Pulling Things Apart
- Chapter 2. Discerning Coupling in Software Architecture
- Architecture (Quantum | Quanta)
- Sysops Squad Saga: Understanding Quanta
- Chapter 3. Architectural Modularity
- Modularity Drivers
- Sysops Squad Saga: Creating a Business Case
- Chapter 4. Architectural Decomposition
- Is the Codebase Decomposable?
- Component-Based Decomposition
- Tactical Forking
- Sysops Squad Saga: Choosing a Decomposition Approach
- Chapter 5. Component-Based Decomposition Patterns
- Identify and Size Components Pattern
- Gather Common Domain Components Pattern
- Flatten Components Pattern
- Determine Component Dependencies Pattern
- Create Component Domains Pattern
- Create Domain Services Pattern
- Summary
- Chapter 6. Pulling Apart Operational Data
- Data Decomposition Drivers
- Decomposing Monolithic Data
- Selecting a Database Type
- Sysops Squad Saga: Polyglot Databases
- Chapter 7. Service Granularity
- Granularity Disintegrators
- Granularity Integrators
- Finding the Right Balance
- Sysops Squad Saga: Ticket Assignment Granularity
- Sysops Squad Saga: Customer Registration Granularity
- Part II. Putting Things Back Together
- Chapter 8. Reuse Patterns
- Code Replication
- Shared Library
- Shared Service
- Sidecars and Service Mesh
- Sysops Squad Saga: Common Infrastructure Logic
- Code Reuse: When Does It Add Value?
- Sysops Squad Saga: Shared Domain Functionality
- Chapter 9. Data Ownership and Distributed Transactions
- Assigning Data Ownership
- Single Ownership Scenario
- Common Ownership Scenario
- Joint Ownership Scenario
- Service Consolidation Technique
- Data Ownership Summary
- Distributed Transactions
- Eventual Consistency Patterns
- Sysops Squad Saga: Data Ownership for Ticket Processing
- Chapter 10. Distributed Data Access
- Interservice Communication Pattern
- Column Schema Replication Pattern
- Replicated Caching Pattern
- Data Domain Pattern
- Sysops Squad Saga: Data Access for Ticket Assignment
- Chapter 11. Managing Distributed Workflows
- Orchestration Communication Style
- Choreography Communication Style
- Trade-Offs Between Orchestration and Choreography
- Sysops Squad Saga: Managing Workflows
- Chapter 12. Transactional Sagas
- Transactional Saga Patterns
- State Management and Eventual Consistency
- Techniques for Managing Sagas
- Sysops Squad Saga: Atomic Transactions and Compensating Updates
- Chapter 13. Contracts
- Strict Versus Loose Contracts
- Stamp Coupling
- Sysops Squad Saga: Managing Ticketing Contracts
- Chapter 14. Managing Analytical Data
- Previous Approaches
- The Data Mesh
- Sysops Squad Saga: Data Mesh
- Chapter 15. Build Your Own Trade-Off Analysis
- Finding Entangled Dimensions
- Trade-Off Techniques
- Sysops Squad Saga: Epilogue
- Appendix A. Concept and Term References
- Appendix B. Architecture Decision Record References
- Appendix C. Trade-Off References
- Index