# Service-Oriented Architecture

Record: `arch:service-oriented-architecture`
Kind: style
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: contextual
Scope: application, service, integration
Canonical: https://banes-lab.com/ontology#arch-service-oriented-architecture

## Repair

- Refactored by: Expose Capabilities as Contracted Services
- Detected by: unrelated operations sharing one class/module
- Violated by: capabilities bundled in one application object
- Measured by: capability cohesion per module
- Enforced by: [architecture review](https://banes-lab.com/records/arch/architecture-review.md)

## requires

- [Service Contract](https://banes-lab.com/records/arch/service-contract.md)

## reinforces

- [Service Autonomy](https://banes-lab.com/records/arch/service-autonomy.md)
- [Low Coupling](https://banes-lab.com/records/arch/low-coupling.md)

## enables

- [Contract-Governed Service Reuse](https://banes-lab.com/records/lex/contract-governed-service-reuse.md)

## conflicts-with

- [Shared Monolithic Application](https://banes-lab.com/records/lex/shared-monolithic-application.md)

## tensions-with

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

## tensions

- [Service-Oriented Architecture Operational Overhead](https://banes-lab.com/records/tension/operational-overhead-service-oriented-architecture.md)
