
Balanced Coupling
This is Vlad Khononov's three-dimensional framework for evaluating coupling decisions: integration strength (intrusive to contract), distance (in-process to across networks), and volatility (how often things change). Instead of treating all coupling as bad, it gives you a lens to decide when coupling is balanced or when it will cause cascading changes. The integration strength ladder alone is worth having on hand when you're in a design review arguing about whether to share a domain model or introduce a contract. Pairs well with DDD conversations since it explicitly maps to strategic and tactical patterns. The framework treats complexity as subjective and tied to cognitive load, which feels right when you're staring at a distributed monolith wondering why every change takes three teams.
- GitHub stars
- 449
- last updated
- Apr 4, 2026
Install
$ npx -y skills add vladikk/modularity --skill balanced-coupling --agent claude-codeInstalls into .claude/skills of the current project.
Files
The Balanced Coupling Model
A comprehensive reference for understanding the Balanced Coupling model as described by Vlad Khononov. This document synthesizes the full model from the companion blog at coupling.dev, covering its foundations, dimensions, balancing mechanics, relationship to prior coupling models, and connections to domain-driven design.
1. Foundations: Why Coupling Matters
1.1 Coupling Is Not the Enemy
The term "coupling" has long been synonymous with bad design. The balanced coupling model challenges this assumption. According to the dictionary, coupling is simply a device for connecting parts. If a system is a set of components interacting to achieve a goal, then coupling is what connects those components and makes it possible to achieve those goals. Coupling is what makes the value of a system greater than the sum of its parts.
Sponsors
Details
- Repository
- github.com/vladikk/modularity
- First seen
- Jun 11, 2026