# Invariant Protection

> The ability to guarantee an object's rules always hold by controlling all access to its state.

Record: `lexicon:invariant-protection`
Kind: capability
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-invariant-protection

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Internal Refactoring](https://banes-lab.com/records/lexicon/internal-refactoring.md) and before [Product Lines](https://banes-lab.com/records/lexicon/product-lines.md).

## Category

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

## Enabled by

- [Encapsulation](https://banes-lab.com/records/architecture/encapsulation.md)

## Linked from

- [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)
