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

Publisher

O'Reilly Media

Publication Date

2021

ISBN

9781492086895

Number of Pages

845

Language

English

Format

PDF

File Size

7.2MB

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