# Component-Based Architecture

Record: `arch:component-based-architecture`
Kind: style
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: recommended
Scope: component, system
Canonical: https://banes-lab.com/ontology#arch-component-based-architecture

## Repair

- Refactored by: Extract Component, Define Contract
- Detected by: boundary import violations
- Violated by: component internals accessed externally
- Measured by: component cohesion/coupling
- Enforced by: component ownership rules

## requires

- [Component Boundaries](https://banes-lab.com/records/lex/component-boundaries.md)
- [Contracts](https://banes-lab.com/records/lex/contracts.md)

## reinforces

- [Modularity](https://banes-lab.com/records/arch/modularity.md)
- [Composability](https://banes-lab.com/records/arch/composability.md)

## enables

- [Reuse](https://banes-lab.com/records/lex/reuse.md)
- [Replaceability](https://banes-lab.com/records/arch/replaceability.md)

## conflicts-with

- [Big Ball of Mud](https://banes-lab.com/records/arch/big-ball-of-mud.md)

## tensions-with

- [Integration Overhead](https://banes-lab.com/records/lex/integration-overhead.md)

## tensions

- [Component-Based Architecture Integration Overhead](https://banes-lab.com/records/tension/component-based-architecture-integration-overhead.md)
