Integration Coupling Modes
The distinct dimensions along which two systems can be coupled — temporal, format, location, semantic — each with its own remedy.
"Loosely coupled" is used as a single quality when it is at least four separable properties, and the distinction is what makes design conversations productive rather than circular.
Temporal coupling: does A require B to be available at the moment of the call? Synchronous request means yes; a queue removes it. This is the one most often meant and most often the easiest to fix.
Format coupling: does A depend on B's exact representation? Shared schemas with tolerant readers and versioning reduce it; a shared database table maximises it.
Location coupling: does A need to know where B is? Service discovery and gateways remove it.
Semantic coupling: does A depend on the meaning of B's data and behaviour? This one cannot be removed by any technical mechanism, and it is the coupling that actually matters. Two services that both need to agree what "order confirmed" means are semantically coupled however many queues sit between them.
The value of the distinction in review: teams frequently add a message broker, declare the systems decoupled, and still find that a change to B's meaning breaks A. They removed temporal coupling and left the semantic coupling untouched — which was the expensive one, and which is addressed by boundary design and contracts rather than by infrastructure.