Topic domain

Software Architecture

Structure, boundaries, and the cost of coupling.

Articles
80
Clusters
8
Foundational
24
Intermediate
31
Advanced
25

Cohesion, coupling, and information hiding.

  1. Coupling and Cohesion as Independent Structural Axes
  2. Information Hiding and the Parnas Decomposition Criterion
  3. Interface Contracts and the Limits of Substitutability
  4. Cycles in Module Dependency Graphs and How to Break Them
  5. Package Encapsulation and the Leak of Internal Types
  6. Instability, Abstractness, and the Main Sequence Metric
All 10 in this cluster →

Layered, event-driven, and plugin designs.

  1. Layered Architecture and the Cost of Strict Layer Isolation
  2. Ports and Adapters and the Direction of the Dependency Arrow
  3. Event Notification and Event-Carried State Transfer Compared
  4. Microkernel Architecture and the Stability of Plugin Extension Points
  5. Pipes and Filters and the Contract Between Stages
  6. CQRS and the Consistency Window Between Writes and Read Models
All 10 in this cluster →

Contracts, evolution, and compatibility.

  1. Where an API Contract Ends and the Implementation Begins
  2. Idempotency Keys and the Retry Window for Writes
  3. Pagination Contracts and Why Cursors Drift Less Than Offsets
  4. Versioning Strategies and What a Version Number Promises
  5. Tolerant Readers, Unknown Fields, and the Cost of Strict Decoding
  6. Deprecation Windows and the Gates That Must Close Before Removal
All 10 in this cluster →

Boundaries, invariants, and ubiquitous language.

  1. Value Objects and Entities: Deciding What Has Identity
  2. Invariants and Illegal States: Making Invalid Combinations Unrepresentable
  3. Ubiquitous Language: Keeping One Term for One Concept in Code
  4. Aggregate Boundaries and Transaction Scope
  5. Bounded Contexts and the Cost of a Shared Model
  6. Domain Events: Publishing State Transitions Without Losing Them
All 10 in this cluster →

Service boundaries and failure domains.

  1. Availability Multiplication in Synchronous Service Graphs
  2. Drawing Service Boundaries Around Consistency Requirements
  3. Blast Radius and Cell-Based Isolation
  4. Temporal Coupling Between Services
  5. Idempotency Keys and Duplicate Suppression at Service Boundaries
  6. The Dual-Write Problem and the Transactional Outbox
All 10 in this cluster →

Tradeoff analysis and fitness functions.

  1. Quality-Attribute Scenarios as the Unit of Architectural Evaluation
  2. Dependency Structure Matrices and the Cost of a Cycle
  3. Instability, Abstractness, and Distance from the Main Sequence
  4. Fitness Functions as Build-Time Architectural Constraints
  5. Utility Trees, Sensitivity Points, and Tradeoff Points
  6. How Deep to Evaluate: Analysis Cost Against Rework Cost
All 10 in this cluster →

Interest, principal, and repayment strategy.

  1. Principal, Interest, and Upkeep in the Technical Debt Model
  2. Change Amplification: How Coupling Sets the Price of an Edit
  3. Divergent Duplicates and the Cost of Two Truths
  4. Measuring Debt Without Inventing Numbers
  5. Feedback Latency as Compounding Interest
  6. Compatibility Promises as Borrowed Time
All 10 in this cluster →

Strangler patterns and incremental replacement.

  1. Finding Seams in Legacy Code That Was Never Built to Have Them
  2. Mapping Runtime Dependencies from Traffic and Query Logs
  3. Characterization Tests: Pinning Behaviour Nobody Designed
  4. Routing Requests Between Old and New with a Strangler Facade
  5. Anti-Corruption Layers and the Cost of Model Translation
  6. Dual Writes and the Divergence They Inevitably Produce
All 10 in this cluster →

All Software Architecture articles