# Concurrency

Record: `arch:concurrency`
Kind: model
Layer: [Performance Core](https://banes-lab.com/records/layer/performance-core.md)
Severity: contextual
Scope: runtime, service, algorithm
Canonical: https://banes-lab.com/ontology#arch-concurrency

## Repair

- Refactored by: Add Synchronization, Use Immutable State
- Detected by: data races, flaky concurrent tests
- Violated by: unsafe shared mutation
- Measured by: [throughput](https://banes-lab.com/records/arch/throughput.md), race count
- Enforced by: race detectors, [tests](https://banes-lab.com/records/lex/tests.md)

## requires

- [Concurrency Control](https://banes-lab.com/records/arch/concurrency-control.md)

## reinforces

- [Throughput](https://banes-lab.com/records/arch/throughput.md)

## enables

- [Overlapping Work](https://banes-lab.com/records/lex/overlapping-work.md)

## conflicts-with

- [Race Conditions](https://banes-lab.com/records/lex/race-conditions.md)

## tensions-with

- [Complexity](https://banes-lab.com/records/lex/complexity.md)

## tensions

- [Concurrency Complexity](https://banes-lab.com/records/tension/complexity-concurrency.md)
