# Consensus

Record: `arch:consensus`
Kind: mechanism
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: mandatory for distributed systems
Scope: distributed system, agreement, consistency
Canonical: https://banes-lab.com/ontology#arch-consensus

## Repair

- Refactored by: Adopt a Consensus Protocol
- Detected by: divergent committed state across replicas
- Violated by: nodes committing values without quorum agreement
- Measured by: agreement-violation rate
- Enforced by: distributed-systems review

## requires

- [Quorum](https://banes-lab.com/records/lex/quorum.md)

## reinforces

- [Consistency](https://banes-lab.com/records/arch/consistency.md)
- [Fault Tolerance](https://banes-lab.com/records/arch/fault-tolerance.md)

## enables

- [Agreed Single Value Across Nodes](https://banes-lab.com/records/lex/agreed-single-value-across-nodes.md)

## conflicts-with

- [Independent Node Decisions](https://banes-lab.com/records/lex/independent-node-decisions.md)

## tensions-with

- [Latency](https://banes-lab.com/records/arch/latency.md)
- [Availability](https://banes-lab.com/records/lex/availability.md)

## tensions

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

## referenced-by

- [Total-Order Broadcast](https://banes-lab.com/records/arch/total-order-broadcast.md)
- [Leader Election](https://banes-lab.com/records/arch/leader-election.md)
