Code quality and technical debt

Efferent coupling

Also known as Efferent coupling, Efferent coupling in software engineering

By WeavePublished 1 min read

Definition

The number of dependencies that a component sends outward to other components.

What it means

Efferent coupling measures how many external components a target component depends on. It describes outward knowledge and can indicate integration breadth, setup burden, or potential failure paths. A high value may be appropriate for an orchestrator, but it deserves attention when concentrated in business-critical code.

Example

A service coordinator calls identity, inventory, pricing, tax, and notification modules. Mapping its outward dependencies helps the team decide which calls need timeouts, contracts, or a narrower application boundary.

Limitations

The count ignores dependency weight and runtime frequency. A component with two critical remote dependencies may be riskier than one with ten local helpers. Treat the metric as a map of relationships, not a reliability measurement.

How to use the signal

Inspect whether outward relationships are local, remote, optional, or failure-sensitive before treating the count as architectural risk.

Weave can help compare high-efferent changes with queue time, review iteration, and incidents. Keep latency and failure evidence in observability systems, and use this architecture signal to focus the investigation.

How this relates to Weave

Weave can help compare high-efferent changes with queue time, review iteration, and incidents. Keep latency and failure evidence in observability systems, and use this architecture signal to focus the investigation.

Explore Engineering intelligence

Sources and further reading

  1. SonarSource code metrics and analysis documentation