Explicit Boundaries
Kind: principle
Layer: Domain Modeling
Record: architecture:explicit-boundaries
Severity: mandatory
Scope: module, component, service, domain
Canonical: Ontology
A design rule that each module declares its public interface and owner, and other modules reach it only through that interface.
Listed in Architecture principles, after Anti-Corruption Layer and before Aggregate.
Requires
Reinforces
Enables
Conflicts with
In tension with
Tensions
Violated by
Refactored by
Severity
Category
Enforced by
- codemods/entrypoints/specifier.entrypoint.ts
- rules/eslint/closure-build-script-unimported.eslint.rule.ts
- rules/eslint/closure-no-cross-member-relative.eslint.rule.ts
- rules/eslint/closure-standalone-script-imported.eslint.rule.ts
Required by
- Bounded Context
- Aggregate
- Single Responsibility Principle
- Separation of Concerns
- High Cohesion
- Independence
Reinforced by
Linked from
- When rules collide
- Principles are typed
- Architectural rules and principles
- Anti-patterns
- Domain Architecture
- Contracts / Interfaces / Compatibility
- Core Modular Design
- Security / Privacy / Compliance / Governance
- Taxonomy / Classification / Naming
- Contracts / Interfaces / Compatibility
- Core Modular Design
- Core Vocabulary
- Severity levels
- The resolutions