# Determinism

> A design rule that the same inputs and state always produce the same result, with time and randomness passed in as inputs.

Record: `architecture:determinism`
Kind: principle
Layer: [Computation Core](https://banes-lab.com/records/layer/computation-core.md)
Severity: recommended
Scope: function, process, build, test
Canonical: https://banes-lab.com/ontology#architecture-determinism

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Choreography](https://banes-lab.com/records/architecture/choreography.md) and before [Predictability](https://banes-lab.com/records/architecture/predictability.md).

## Repair

- Refactored by: Inject Clock/RNG, Control State
- Detected by: flaky tests, hidden random/time calls
- Violated by: nondeterministic behavior without explicit source
- Measured by: flake rate, reproducibility score
- Enforced by: deterministic test rules

## Requires

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

## Reinforces

- [Predictability](https://banes-lab.com/records/architecture/predictability.md)
- [Reproducibility](https://banes-lab.com/records/architecture/reproducibility.md)

## Enables

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

## Conflicts with

- [Hidden Time/Randomness/Global State](https://banes-lab.com/records/lexicon/hidden-time-randomness-global-state.md)

## In tension with

- [Runtime Adaptivity](https://banes-lab.com/records/lexicon/runtime-adaptivity.md)
- [Artificial Intelligence Architecture](https://banes-lab.com/records/architecture/artificial-intelligence-architecture.md)
- [Agentic Architecture](https://banes-lab.com/records/architecture/agentic-architecture.md)
- [Artificial Intelligence Architecture / Determinism](https://banes-lab.com/records/tension/artificial-intelligence-architecture-determinism.md)
- [Agentic Architecture / Determinism](https://banes-lab.com/records/tension/agentic-architecture-determinism.md)

## Tensions

- [Determinism / Runtime Adaptivity](https://banes-lab.com/records/tension/determinism-runtime-adaptivity.md)

## Contracts

- [Computation Core](https://banes-lab.com/records/algorithms/computation-core.md)

## Severity

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

## Category

- [Correctness / Determinism / Verification](https://banes-lab.com/records/architecture-category/correctness-determinism-verification.md)

## Enforced by

- [rules/eslint/no-raw-file-write.eslint.rule.ts](https://banes-lab.com/source/governance/rules/eslint/no-raw-file-write.eslint.rule.ts.md)

## Reinforced by

- [Referential Transparency](https://banes-lab.com/records/architecture/referential-transparency.md)
- [Pure Functions](https://banes-lab.com/records/architecture/pure-functions.md)
- [Write Scope and Read Population](https://banes-lab.com/records/architecture/write-scope-and-read-population.md)
- [One-Sided Liveness](https://banes-lab.com/records/architecture/one-sided-liveness.md)
- [Declare-Before-Read Order](https://banes-lab.com/records/architecture/declare-before-read-order.md)
- [Derived Party Count](https://banes-lab.com/records/architecture/derived-party-count.md)
- [Externally Resolved Slot](https://banes-lab.com/records/architecture/externally-resolved-slot.md)

## Linked from

- [One correct answer](https://banes-lab.com/disciplined-methodology/verify/one-correct-answer.md)
- [Computation and resource](https://banes-lab.com/software-architecture/principles/computation-and-resource.md)
- [Debt and leverage](https://banes-lab.com/software-architecture/decay/debt-and-leverage.md)
- [From intent to predicate](https://banes-lab.com/software-architecture/coverage/an-architecture-is-its-predicate-set.md)
- [A cell that resists an invariant](https://banes-lab.com/software-architecture/coverage/a-cell-that-resists-an-invariant.md)
- [Scale follows determinism](https://banes-lab.com/software-architecture/scale/scale-follows-determinism.md)
- [Contracts / Interfaces / Compatibility](https://banes-lab.com/ontology/principles/architecture-category-contracts-interfaces-compatibility.md)
- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/principles/architecture-category-correctness-determinism-verification.md)
- [Model Architecture](https://banes-lab.com/ontology/principles/architecture-category-model-architecture.md)
- [Schema / Canonical Data / Semantics](https://banes-lab.com/ontology/principles/architecture-category-schema-canonical-data-semantics.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/principles/architecture-category-coordination-surfaces.md)
- [Taxonomy / Classification / Naming](https://banes-lab.com/ontology/principles/architecture-category-taxonomy-classification-naming.md)
- [Correctness / Determinism / Verification](https://banes-lab.com/ontology/lexicon/lexicon-category-correctness-determinism-verification.md)
- [Architectural Clusters](https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-clusters.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The resolutions](https://banes-lab.com/ontology/schema/the-resolutions.md)
