# Ports and Adapters

> An architecture isolating core logic behind ports, with adapters binding it to external technologies.

Record: `lexicon:ports-and-adapters`
Kind: pattern
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-ports-and-adapters

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Race Conditions](https://banes-lab.com/records/lexicon/race-conditions.md) and before [Operational Complexity](https://banes-lab.com/records/lexicon/operational-complexity.md).

## Category

- [Core Vocabulary](https://banes-lab.com/records/lexicon-category/core-vocabulary.md)

## Reinforced by

- [Replaceability](https://banes-lab.com/records/architecture/replaceability.md)

## Enabled by

- [Dependency Inversion Principle](https://banes-lab.com/records/architecture/dependency-inversion.md)

## Required by

- [Hexagonal Architecture](https://banes-lab.com/records/architecture/hexagonal-architecture.md)

## Linked from

- [Core Modular Design](https://banes-lab.com/ontology/principles/architecture-category-core-modular-design.md)
- [SOLID / Object-Oriented Design](https://banes-lab.com/ontology/principles/architecture-category-solid-object-oriented-design.md)
- [Plugin / Extensibility / IoC](https://banes-lab.com/ontology/principles/architecture-category-plugin-extensibility-ioc.md)
- [Codebase / System Architecture Styles](https://banes-lab.com/ontology/principles/architecture-category-codebase-system-architecture-styles.md)
