# Consistency

> The degree to which stored data satisfies its invariants after every change.

Record: `architecture:consistency`
Kind: quality-attribute
Layer: [Atomic Boundary](https://banes-lab.com/records/layer/atomic-boundary.md)
Severity: mandatory
Scope: data, transaction, distributed system
Canonical: https://banes-lab.com/ontology#architecture-consistency

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Unit of Work Pattern](https://banes-lab.com/records/architecture/unit-of-work-pattern.md) and before [Isolation](https://banes-lab.com/records/architecture/isolation.md).

## Repair

- Refactored by: Add Constraints, Add Transaction, Add Reconciliation
- Detected by: data anomalies, failed invariant checks
- Violated by: invariant-breaking writes
- Measured by: consistency violation count
- Enforced by: database constraints, invariant tests

## Requires

- [Invariant](https://banes-lab.com/records/architecture/invariant.md)
- [Validation](https://banes-lab.com/records/architecture/validation.md)

## Reinforces

- [Correctness](https://banes-lab.com/records/architecture/correctness.md)

## Enables

- [Reliable State](https://banes-lab.com/records/lexicon/reliable-state.md)

## Conflicts with

- [Inconsistent Replicas/Models](https://banes-lab.com/records/lexicon/inconsistent-replicas-models.md)

## In tension with

- [Availability](https://banes-lab.com/records/lexicon/availability.md)
- [Latency](https://banes-lab.com/records/architecture/latency.md)
- [Decentralization](https://banes-lab.com/records/architecture/decentralization.md)
- [Scalability](https://banes-lab.com/records/architecture/scalability.md)
- [Caching](https://banes-lab.com/records/architecture/caching.md)
- [Failover](https://banes-lab.com/records/architecture/failover.md)
- [Microservices](https://banes-lab.com/records/architecture/microservices.md)
- [Space-Based Architecture](https://banes-lab.com/records/architecture/space-based-architecture.md)
- [Decentralization / Consistency](https://banes-lab.com/records/tension/consistency-decentralization.md)
- [Scalability / Consistency](https://banes-lab.com/records/tension/consistency-scalability.md)
- [Caching / Consistency](https://banes-lab.com/records/tension/caching-consistency.md)
- [Failover / Consistency](https://banes-lab.com/records/tension/consistency-failover.md)
- [Microservices / Consistency](https://banes-lab.com/records/tension/consistency-microservices.md)
- [Space-Based Architecture / Consistency](https://banes-lab.com/records/tension/consistency-space-based-architecture.md)

## Tensions

- [Consistency / Availability](https://banes-lab.com/records/tension/availability-consistency.md)
- [Consistency / Latency](https://banes-lab.com/records/tension/consistency-latency.md)

## Severity

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

## Category

- [Transactions / State / Concurrency](https://banes-lab.com/records/architecture-category/transactions-state-concurrency.md)

## Reinforced by

- [Total-Order Broadcast](https://banes-lab.com/records/architecture/total-order-broadcast.md)
- [Centralized Configuration](https://banes-lab.com/records/architecture/centralized-configuration.md)
- [Consensus](https://banes-lab.com/records/architecture/consensus.md)
- [Code Review](https://banes-lab.com/records/architecture/code-review.md)
- [Reference Architecture](https://banes-lab.com/records/architecture/reference-architecture.md)
- [Standardization](https://banes-lab.com/records/architecture/standardization.md)
- [Single Source of Truth](https://banes-lab.com/records/architecture/single-source-of-truth.md)
- [Normalization](https://banes-lab.com/records/architecture/normalization.md)
- [Governance](https://banes-lab.com/records/architecture/governance.md)
- [Atomicity](https://banes-lab.com/records/architecture/atomicity.md)
- [Unit of Work Pattern](https://banes-lab.com/records/architecture/unit-of-work-pattern.md)

## Enabled by

- [Do Not Repeat Yourself](https://banes-lab.com/records/architecture/duplicate-code.md)

## Required by

- [ACID](https://banes-lab.com/records/architecture/acid.md)

## Linked from

- [A seat is a contract](https://banes-lab.com/disciplined-methodology/start/a-seat-is-a-contract.md)
- [Placement is a grammar](https://banes-lab.com/disciplined-methodology/build/placement-is-a-grammar.md)
- [Separate, trade, or mitigate](https://banes-lab.com/software-architecture/principles/separate-trade-or-mitigate.md)
- [The principle architecture](https://banes-lab.com/software-architecture/glossary/the-principle-architecture.md)
- [Causality / Ordering / Distributed Time](https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Control / Coordination / Centralization](https://banes-lab.com/ontology/principles/architecture-category-control-coordination-centralization.md)
- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md)
- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- [Scalability / Performance / Optimization](https://banes-lab.com/ontology/principles/architecture-category-scalability-performance-optimization.md)
- [Self-Healing / Recovery / Deployment Safety](https://banes-lab.com/ontology/principles/architecture-category-self-healing-recovery-deployment-safety.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Security / Privacy / Compliance / Governance](https://banes-lab.com/ontology/principles/architecture-category-security-privacy-compliance-governance.md)
- [Codebase / System Architecture Styles](https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md)
- [Transactions / State / Concurrency](https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md)
- [Quality Attributes](https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md)
- [Transactions / State / Concurrency](https://banes-lab.com/ontology/lexicon/lexicon-category-transactions-state-concurrency.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
