# Choreography

Record: `arch:choreography`
Kind: mechanism
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: distributed system, coordination, event
Canonical: https://banes-lab.com/ontology#arch-choreography

## Repair

- Refactored by: Coordinate via Choreographed Events
- Detected by: a central coordinator coupled to all participants
- Violated by: one orchestrator commanding every step of a cross-service flow
- Measured by: orchestrator fan-out coupling
- Enforced by: [architecture review](https://banes-lab.com/records/arch/architecture-review.md)

## requires

- [Event-Driven Architecture](https://banes-lab.com/records/arch/event-driven-architecture.md)

## reinforces

- [Decentralization](https://banes-lab.com/records/arch/decentralization.md)
- [Service Autonomy](https://banes-lab.com/records/arch/service-autonomy.md)

## enables

- [Central-Orchestrator-Free Coordination](https://banes-lab.com/records/lex/central-orchestrator-free-coordination.md)

## conflicts-with

- [Central Orchestrator Bottleneck](https://banes-lab.com/records/lex/central-orchestrator-bottleneck.md)

## tensions-with

- [Traceability](https://banes-lab.com/records/arch/traceability.md)

## tensions

- [Choreography Traceability](https://banes-lab.com/records/tension/choreography-traceability.md)
