Coupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are. The strength of the relationships between modules determines how difficult the system is to understand, maintain, and evolve over time - the tighter the coupling, the harder it is to change one module without needing to change others.
We need to refactor the payment processing module because it has high coupling with the user authentication logic, making it a nightmare to maintain.
I wouldn't use that third-party library for such a core piece of the application - its coupling to their proprietary API will make it hard to switch providers down the road if needed.
How to Break a Monolith into Microservices - Outlines strategies for progressively decoupling capabilities from a monolith into microservices while minimizing dependencies.
Consumer-Driven Contracts: A Service Evolution Pattern - Describes an approach for evolving service contracts that balances the needs of consumers and providers.
Leverage Points in Managing Technical Quality - Discusses key areas like interfaces, stateful systems, and data models that require deliberate investment to maintain quality and reduce coupling over time.
Note: the Developer Dictionary is in Beta. Please direct feedback to skye@statsig.com.