Chapter 1. Coupling
Coupling captures how much modules within a software system interact and depend on each other. While often viewed through a lens of technical debt or fragility, coupling is an unavoidable design consideration in any complex architecture. Building effective platforms requires a nuanced understanding of when to accept interdependencies to gain efficiency and performance and when to enforce separation to preserve flexibility.
This chapter explores the nature of coupling, starting with the potential advantages and disadvantages. It examines established architectural patterns for achieving loose coupling—such as layering, pub/sub messaging, and federation—and identifies common antipatterns like shared databases and distributed monoliths. Finally, it will discuss proactive methods for discovering implicit coupling, including static analysis and chaos engineering, to ensure that the coupling of system parts is intentional and robust.
What Is Coupling?
Coupling ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access