# Compensating Transaction

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

## Repair

- Refactored by: Add Compensation Action
- Detected by: saga steps without compensation
- Violated by: unrecoverable partial workflow failure
- Measured by: compensation coverage
- Enforced by: workflow tests

## requires

- [Reversible/Compensable Step](https://banes-lab.com/records/lex/reversible-compensable-step.md)

## reinforces

- [Saga Pattern](https://banes-lab.com/records/arch/saga-pattern.md)
- [Resilience](https://banes-lab.com/records/arch/resilience.md)

## enables

- [Failure Recovery](https://banes-lab.com/records/lex/failure-recovery.md)

## conflicts-with

- [Irreversible Side Effects](https://banes-lab.com/records/lex/irreversible-side-effects.md)

## tensions-with

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

## tensions

- [Compensating Transaction Business Complexity](https://banes-lab.com/records/tension/business-complexity-compensating-transaction.md)
