# Feature Toggle

Record: `arch:feature-toggle`
Kind: mechanism
Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)
Severity: contextual
Scope: application, release, runtime
Canonical: https://banes-lab.com/ontology#arch-feature-toggle

## Repair

- Refactored by: Introduce Runtime Feature Flags
- Detected by: compile-time flags requiring redeploy to flip
- Violated by: release paths gated by a hardcoded boolean constant
- Measured by: redeploys per behavior change
- Enforced by: release review

## requires

- [Externalized Flag State](https://banes-lab.com/records/lex/externalized-flag-state.md)

## reinforces

- [Continuous Delivery](https://banes-lab.com/records/lex/continuous-delivery.md)
- [Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)

## enables

- [Decoupled Deploy and Release](https://banes-lab.com/records/lex/decoupled-deploy-and-release.md)
- [Gradual Rollout](https://banes-lab.com/records/lex/gradual-rollout.md)

## conflicts-with

- [Hardcoded Branch Constant](https://banes-lab.com/records/lex/hardcoded-branch-constant.md)

## tensions-with

- [Flag Debt](https://banes-lab.com/records/lex/flag-debt.md)

## tensions

- [Feature Toggle Flag Debt](https://banes-lab.com/records/tension/feature-toggle-flag-debt.md)
