# Write Barrier

> A mechanism that lets a planned exclusive write to a shared surface proceed only once every peer is observed parked, beside a compare-and-swap that covers every other write.

Record: `architecture:write-barrier`
Kind: mechanism
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: surface, concurrency
Canonical: https://banes-lab.com/ontology#architecture-write-barrier

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Declared Subject](https://banes-lab.com/records/architecture/declared-subject.md) and before [Operand-Free Outcome Surface](https://banes-lab.com/records/architecture/operand-free-outcome-surface.md).

## Repair

- Refactored by: Hold the Barrier for Planned Writes, Compare-and-Swap for Every Other Write
- Detected by: content a peer wrote missing after an exclusive write that reported success
- Violated by: rewriting a shared surface whole while a peer is still active on it
- Measured by: exclusive writes taken without every peer observed parked
- Enforced by: coordination review

## Requires

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

## Reinforces

- [Optimistic Locking](https://banes-lab.com/records/architecture/optimistic-locking.md)

## Enables

- [Single-Writer Coordination](https://banes-lab.com/records/lexicon/single-writer-coordination.md)

## Conflicts with

- [Lost Update](https://banes-lab.com/records/architecture/lost-update.md)

## Severity

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

## Category

- [Coordination Surfaces](https://banes-lab.com/records/architecture-category/coordination-surfaces.md)

## Linked from

- [Verify the verifier](https://banes-lab.com/disciplined-methodology/verify/verify-the-verifier.md)
- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Transactions / State / Concurrency](https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md)
- [Control / Coordination / Centralization](https://banes-lab.com/ontology/lexicon/lexicon-category-control-coordination-centralization.md)
- [Coordination Surfaces](https://banes-lab.com/ontology/lexicon/lexicon-category-coordination-surfaces.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)

## Evidence in the code

- [models/coordination.model.md](https://banes-lab.com/source/coordination/models/coordination.model.md.md)
