# Adapter Pattern

Record: `arch:adapter-pattern`
Kind: pattern
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Severity: mandatory
Scope: integration, boundary
Canonical: https://banes-lab.com/ontology#arch-adapter-pattern

## Repair

- Refactored by: Add Adapter, Add Translator
- Detected by: external SDK types in domain/application
- Violated by: foreign model leaking into core
- Measured by: external leakage count
- Enforced by: boundary import rules

## requires

- [Incompatible Interfaces](https://banes-lab.com/records/lex/incompatible-interfaces.md)

## reinforces

- [Anti-Corruption Layer](https://banes-lab.com/records/arch/anti-corruption-layer.md)
- [Replaceability](https://banes-lab.com/records/arch/replaceability.md)

## enables

- [Interoperability](https://banes-lab.com/records/arch/interoperability.md)

## conflicts-with

- [Direct External Coupling](https://banes-lab.com/records/lex/direct-external-coupling.md)

## tensions-with

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

## tensions

- [Adapter Pattern Mapping Overhead](https://banes-lab.com/records/tension/adapter-pattern-mapping-overhead.md)

## referenced-by

- [Interface-Based Design](https://banes-lab.com/records/arch/interface-based-design.md)
