# Independence

> A design rule that a module can be tested and deployed without the modules around it being present or released.

Record: `architecture:independence`
Kind: principle
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: recommended
Scope: module, service, deployment
Canonical: https://banes-lab.com/ontology#architecture-independence

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Interchangeability](https://banes-lab.com/records/architecture/interchangeability.md) and before [Autonomy](https://banes-lab.com/records/architecture/autonomy.md).

## Repair

- Refactored by: Split Boundary, Introduce Events, Decouple Persistence
- Detected by: shared mutable resources, deployment coupling
- Violated by: shared database coupling, synchronous dependency chains
- Measured by: independent deployability, dependency count
- Enforced by: deployment rules, service ownership

## Requires

- [Low Coupling](https://banes-lab.com/records/architecture/low-coupling.md)
- [Explicit Boundaries](https://banes-lab.com/records/architecture/explicit-boundaries.md)

## Reinforces

- [Autonomy](https://banes-lab.com/records/architecture/autonomy.md)
- [Portability](https://banes-lab.com/records/architecture/portability.md)

## Enables

- [Independent Testing](https://banes-lab.com/records/lexicon/independent-testing.md)
- [Independent Deployment](https://banes-lab.com/records/lexicon/independent-deployment.md)

## Conflicts with

- [Shared Runtime Dependency](https://banes-lab.com/records/lexicon/shared-runtime-dependency.md)

## In tension with

- [Coordination Cost](https://banes-lab.com/records/lexicon/coordination-cost.md)

## Tensions

- [Independence / Coordination Cost](https://banes-lab.com/records/tension/coordination-cost-independence.md)

## Severity

- [recommended](https://banes-lab.com/records/vocabulary/severity-recommended.md)

## Category

- [Core Modular Design](https://banes-lab.com/records/architecture-category/core-modular-design.md)

## Linked from

- [Template families](https://banes-lab.com/pag/templates/templates-families.md)
- [Domain Architecture](https://banes-lab.com/ontology/principles/architecture-category-domain-architecture.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Portability / Infrastructure / Deployment](https://banes-lab.com/ontology/principles/architecture-category-portability-infrastructure-deployment.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Core Modular Design](https://banes-lab.com/ontology/lexicon/lexicon-category-core-modular-design.md)
- [Core Vocabulary](https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
