Balancing Coupling in Software Design
summary
Argues for using coupling as a design tool and introduces an integration strength model with four levels: implementation, functional, model, contract; combines three dimensions — strength, distance, volatility — into a simple metric: maintenance pain = strength × volatility × distance. Shows concrete examples: direct DB access is often implementation or model coupling, aggregates collapse distance to avoid pain, bounded contexts and anti-corruption layers reduce strength to a contract, and data mesh can legitimize direct model-level sharing. Recommends eliminating accidental coupling, lowering strength, or reducing distance depending on expected volatility.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 2:50Rethinking coupling
- 6:27Defining coupling
- 11:01Dimensions of coupling
- 13:09Structured design model
- 18:32Kinescence model
- 22:15Comparing strength models
- 29:17Integration strength
- 33:50Distance and lifecycles
- 38:04Volatility and domains
- 41:15Managing maintenance pain
- 44:57DDD application and conclusion
related talks
01h 01mBalancing Coupling in Software Design
48mBalancing Coupling in Software Design
41mUncoupling
56mContinued Learning: The Beauty of Maintenance -
51mHiding The Lead: Coupling, Cohesion, and Microservices-Style
48mI Made Everything Loosely Coupled. Does My App Fall Apart?
55mUnderstanding Modern Trade-off Analysis in Software Architecture
52mLoosely or lousily coupled? Understanding communication patterns
