Architectural Boundaries¶
Systems are divided by boundaries that separate concerns and allow independent development, deployment, or replacement of components
Tension Addressed¶
Consistency vs. Autonomy
Recognizable As¶
API layers; service interfaces; package/module boundaries; the line between "our code" and "their code"; plugin architectures; anywhere you could swap implementations
Canonical Sources¶
Martin, "Clean Architecture" (2017); Fowler, "Patterns of Enterprise Application Architecture" (2002)
Transfers To¶
Political Science (jurisdictional boundaries), Biology (cell membranes), Economics (firm boundaries), Physics (system boundaries)
Boundaries define what can vary independently. Well-placed boundaries isolate volatility. Poorly-placed boundaries force coordinated changes across teams or deployments.