liveBook · Manning

Coupling

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

Loosely coupled software architecture is an architecture in which components or services have limited dependencies and can change with minimal impact on one another.

Coupling is the extent to which a change in one domain concept or software component affects another. It becomes change coupling when delivering a feature requires coordinated changes across codebases or teams. Even teams that can deploy independently may be unable to deliver independently if their work repeatedly crosses value streams. That coordination can add planning delays, integration work, and risk. section 1.2.1 section 12.1

Loose coupling starts with domain boundaries, not merely separate services or teams. Group concepts likely to change together into cohesive subdomains, then align team ownership and software subsystems where practical. A subsystem might be a microservice or a module in a monolith. The aim is for a common feature change to stay within one subdomain, codebase, and team—not to eliminate every dependency. section 9.0 section 2.2.2 section 12.0 section 9.2.3

A loyalty-level feature

A travel company wants rewards to reflect customer spending. The feature changes loyalty accounts, points, and rewards. If each concept belongs to a different subdomain, three codebases and teams must coordinate. Grouping the closely related concepts in one subdomain lets one team make the change in one codebase. The boundary also gives the team a clear purpose: rewarding customer loyalty. section 9.1

Assess coupling from several angles before changing a boundary:

  • Map a business process collaboratively with EventStorming. Ask which concepts tend to change together, then test candidate boundaries against business, organizational, and technical concerns. section 1.2.1 section 9.0
  • Map an end-to-end use case as interactions between subsystems. Each interaction is a dependency to assess; explore alternative flows rather than assuming the first design is final. section 12.2 section 12.6
  • Inspect what one component knows about another. Coupling ranges from intrusive access to another component’s internals through model and functional coupling to weaker contract coupling. Stronger integration makes cascading changes more likely. section 12.1 section 12.6
  • Judge the cost of a dependency in context. Consider its strength, how often the concepts change together, and their distance. Product strategy can change which concepts are volatile; zero dependencies is not a realistic target. section 9.2.3 section 9.2.2

Smaller pieces are not automatically better: they can reduce complexity within a subsystem while increasing complexity across the system. An airline kept some subdomains distinct despite shared terminology because their models served different purposes; unifying them would have added coupling for little gain. Revisit boundaries as implementation reveals new information, and prioritize changes that improve both delivery flow and business outcomes. section 12.6 section 9.3.4 section 12.0

Figure 12.2 Vlad Khononov’s coupling types

The coupling-type diagram provides a visual scale for comparing integration strength when reviewing component dependencies. section 12.1

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Explains change coupling, classifies four integration strengths, and offers flow mapping and cost heuristics without prescribing one universally optimal boundary.
Examples
Contrasts three-team and one-team loyalty changes and describes airline subdomains whose similar terminology concealed different models.
What it assumes
Assumes familiarity with components and team delivery while introducing a classification for software coupling.
What you can do after
Evaluate/understand it by mapping cross-subsystem flows, comparing coupling strength, and reconsidering costly domain boundaries.
How it connects
Connects coupling to domain boundaries, cohesion, Conway’s law, EventStorming, value streams, and subsystem design.

Also explained in

Compare how 17 books explain coupling →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.