# Scale follows determinism

> This section covers how scale relates to determinism, as shown in check against care] and plotted in [cost per change], and why a model author is the case where…

Page: Architecture · Scale
Canonical: https://banes-lab.com/software-architecture/scale#scale-follows-determinism

This section is stop 101 of 102 in the learning route. Previous: [04 - The author is probabilistic](https://banes-lab.com/software-architecture/scale/the-author-is-probabilistic.md). Next: [06 - Systems built around a model](https://banes-lab.com/software-architecture/scale/systems-built-around-a-model.md). It builds on [04 - The author is probabilistic](https://banes-lab.com/software-architecture/scale/the-author-is-probabilistic.md).

This section covers how scale relates to [determinism](https://banes-lab.com/records/arch/determinism.md), as shown in [E1·a check against care](https://banes-lab.com/software-architecture/scale#scale-follows-determinism-panel-a) and plotted in [E1·b cost per change](https://banes-lab.com/software-architecture/scale#scale-follows-determinism-panel-b), and why a model author is the case where the relation matters most. The same axis is stated for a mechanism in [one correct answer](https://banes-lab.com/disciplined-methodology/verify/one-correct-answer.md) on the methodology page.

### The same verdict for any author

Enforcement that rests on care costs more for every author added, and a model is an author whose output rate makes the multiplication expensive. A review process that worked for two developers is applied to a model that produces a hundred changes a day, and the reviewers become the bottleneck the model was meant to remove. A verdict that depends on who is looking has to be produced once per author, while a verdict that depends only on the tree is produced once, so the cost of care scales with the population and the cost of a check does not.

For this reason a deterministic subject is checkable, healable, predictable and scalable at once, and scale follows from determinism rather than from headcount. Judgement moves out of the check and into the choice of which checks to hold. In practice, the subject that has one correct answer is found for every concern and made the thing a check decides. Authors can then be counted freely, because a deterministic verdict is the same for one author or ten, and the model's non-determinism is confined to the one place it belongs, the choice among admissible changes.

To check this, take any rule you enforce by review and ask whether two reviewers would return the same verdict on the same tree. If not, the subject is not yet deterministic, and every author you add costs another review. Determinism is claimed for the check, never for the author. A model stays a distribution however deterministic the gate around it is, and the gate's job is to make that fact cost nothing rather than to pretend it away.

### Determinism is the axis the others derive from

A deterministic subject has [testability](https://banes-lab.com/records/arch/testability.md), [auto-remediation](https://banes-lab.com/records/arch/auto-remediation.md) reaches it, and [predictability](https://banes-lab.com/records/arch/predictability.md) and [scalability](https://banes-lab.com/records/arch/scalability.md) follow without being pursued.

The rest of this page lists the subjects that can be made deterministic, namely what a file is, what a principle requires, which control is absent, which cell is watched and which concern a change forces.

### When a verdict moves

[Flaky test normalization](https://banes-lab.com/records/arch/flaky-test-normalization.md) is what a team does when it stops believing this. A check that returns a different verdict on the same tree is treated as noise, the noise is tolerated, and every author learns that red means run it again. The repair is never a [retry pattern](https://banes-lab.com/records/arch/retry-pattern.md) around the check. It is finding the non-deterministic subject the check depends on and making it deterministic, or declaring that it cannot be and holding the check.

[Formal verification](https://banes-lab.com/records/arch/formal-verification.md) is the far end of the same axis, a subject made deterministic enough that a proof replaces a run, and [static analysis](https://banes-lab.com/records/arch/static-analysis.md) is the near end, a shape decided without running anything. Most of an architecture's predicates live at the near end, and that is enough, because a verdict that is the same for any author is what lets the author be a model.

E1·a check against care

```mermaid
flowchart LR
subject["A subject with one correct answer"]
check["A deterministic check · same cost, same verdict, any author"]
authors["One author, ten, a model · enforcement cost stays flat"]
care["A protocol resting on care · cost multiplied by every author"]
subject --> check --> authors
subject -. left to attention .-> care
```

E1·b cost per change

```mermaid
xychart-beta
title "Enforcement cost against the number of authors"
x-axis "authors" [1, 2, 4, 8, 16, 32]
y-axis "cost per change" 0 --> 32
line "a protocol resting on care" [1, 2, 4, 8, 16, 32]
line "a deterministic check" [1, 1, 1, 1, 1, 1]
```

## Links to

- [Determinism](https://banes-lab.com/records/arch/determinism.md)
- [One correct answer](https://banes-lab.com/disciplined-methodology/verify/one-correct-answer.md)
- [Testability](https://banes-lab.com/records/arch/testability.md)
- [Auto-Remediation](https://banes-lab.com/records/arch/auto-remediation.md)
- [Predictability](https://banes-lab.com/records/arch/predictability.md)
- [Scalability](https://banes-lab.com/records/arch/scalability.md)
- [Flaky Test Normalization](https://banes-lab.com/records/arch/flaky-test-normalization.md)
- [Retry Pattern](https://banes-lab.com/records/arch/retry-pattern.md)
- [Formal Verification](https://banes-lab.com/records/arch/formal-verification.md)
- [Static Analysis](https://banes-lab.com/records/arch/static-analysis.md)

## Linked from

- [Who does what](https://banes-lab.com/disciplined-methodology/start/who-does-what.md)
- [One correct answer](https://banes-lab.com/disciplined-methodology/verify/one-correct-answer.md)
- [Scale follows from structure](https://banes-lab.com/disciplined-methodology/ship/scale-follows-from-structure.md)
