Architecture Repository/Patterns/Loose coupling

= =

Interconnecting system components to the least extent practicable

Status: Draft

Summary
Loose coupling is the practice of organizing a system into independent, distinct subsystems that communicate with one another to support the complete operation of the system. The implementation of how to split the operation of the system into subsystems depends on the needs of the system, the capabilities it requires, the infrastructure, and the way product and technology teams work together.

Related to

 * While loose coupling dictates the action of separating the system into subsystems, the event-based interactions pattern defines how the subsystems communicate with one another.
 * A decoupled frontend is an example of loose coupling that relates specifically to the separation between the system behavior and the interface.

Product benefits

 * Clear domains: Each subsystem can be replaced or swapped with another easily and without disruption to the rest of the system.
 * Quicker turnaround: The independence of the individual subsystems means that as long as the event structure remains clear, adding or changing behavior is easier and requires less dependence on other teams or groups that manage other subsystems.
 * More product flexibility: Instead of relying on a single monolithic output that includes all possible views or interfaces, the system can have multiple independent subsystems, each responsible for a separate dedicated purpose.