Code quality and technical debt

Afferent coupling

Also known as Afferent coupling, Afferent coupling in software engineering

By WeavePublished 1 min read

Definition

The number of incoming dependencies from other components into a component.

What it means

Afferent coupling measures how many external components depend on a target component. It indicates responsibility imposed on the target and can help identify shared or central areas of an architecture. High afferent coupling often deserves compatibility discipline because changes may affect many consumers.

Example

A small authorization contract is used by web, worker, and reporting modules. Before changing its method signature, the team inventories consumers and introduces a staged migration path.

Limitations

Counts depend on the chosen component boundary and may include tests, generated code, or optional integrations. High afferent coupling is not inherently unhealthy because stable foundations can be intentionally shared. Confirm actual consumer behavior.

How to use the signal

Compare this incoming-dependency signal with consumer ownership and interface stability before deciding that centrality is a problem.

Weave can connect high-coupling changes with review load and delivery lead time. The dependency tool should remain the authority for the count, while Weave provides evidence about the engineering work required to change the component.

How this relates to Weave

Weave can connect high-coupling changes with review load and delivery lead time. The dependency tool should remain the authority for the count, while Weave provides evidence about the engineering work required to change the component.

Explore Engineering intelligence

Sources and further reading

  1. SonarSource code metrics and analysis documentation