# Codebase / System Architecture Styles

> Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or…

Page: Ontology · Lexicon
Canonical: https://banes-lab.com/ontology/lexicon#lex-category-codebase-system-architecture-styles

Every term in this category is listed as one record, with its kind, its definition and its aliases, the principles whose relations name it, the principle or contract that carries the same name where one exists, and the layer its category belongs to.

### Adapters

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Components that translate between a core's ports and the specific external technologies behind them.

Referenced by
[Ports and Adapters Architecture](https://banes-lab.com/records/arch/ports-and-adapters-architecture.md)

### Anemic Layers

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which strict layering produces thin pass-through layers that add indirection without logic.

Referenced by
[Layered Architecture](https://banes-lab.com/records/arch/layered-architecture.md)

### Boundaries

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that clear boundaries separate the concentric layers of the system.

Referenced by
[Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)

### Central Database Bottleneck

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Funneling all state through one shared database that becomes the system's scaling bottleneck.

Referenced by
[Space-Based Architecture](https://banes-lab.com/records/arch/space-based-architecture.md)

### Component Boundaries

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that each component expose a well-defined boundary and interface.

Referenced by
[Component-Based Architecture](https://banes-lab.com/records/arch/component-based-architecture.md)

### Contract-Governed Service Reuse

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to reuse services across an enterprise through well-defined contracts.

Referenced by
[Service-Oriented Architecture](https://banes-lab.com/records/arch/service-oriented-architecture.md)

### Database-Bottleneck Removal

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to eliminate the shared-database bottleneck by holding state in distributed memory.

Referenced by
[Space-Based Architecture](https://banes-lab.com/records/arch/space-based-architecture.md)

### Decentralized Ownership

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability for separate teams to own, deploy and evolve their services independently.

Referenced by
[Microservices](https://banes-lab.com/records/arch/microservices.md)

### Dependency Rule

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that source-code dependencies point only inward, toward higher-level policy.

Referenced by
[Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)

### Domain Core

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that pure domain logic occupy the core, isolated from external concerns.

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

### End-to-End Traceability

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which decomposing flow into independent filters makes tracing a request end to end harder.

Referenced by
[Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)

### External System Isolation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to isolate the core from external systems behind adapter boundaries.

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

### Feature Cohesion

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which all code serving one feature is grouped together rather than scattered by layer.

Referenced by
[Package by Feature](https://banes-lab.com/records/arch/package-by-feature.md)

### Framework Independence

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to keep business rules independent of any particular framework.

Referenced by
[Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)

### Framework-Centric Core

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Building the core around a specific framework, so the framework's concerns permeate the domain.

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

### Independent Scaling

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which a single deployable unit prevents scaling parts of the system independently.

Referenced by
[Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)

### Independent Stage Testing

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to test each filter stage in isolation from the rest of the pipeline.

Referenced by
[Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)

### Infrastructure Independence

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to keep the core independent of the infrastructure it runs on.

Referenced by
[Ports and Adapters Architecture](https://banes-lab.com/records/arch/ports-and-adapters-architecture.md)

### Infrastructure-Centric Design

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Designing the core around infrastructure details, so business logic depends on technical specifics.

Referenced by
[Ports and Adapters Architecture](https://banes-lab.com/records/arch/ports-and-adapters-architecture.md)

### Initial Complexity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree of upfront structural complexity introduced by defining ports and adapters.

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

### Integration Overhead

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree of effort required to wire independently-developed components together.

Referenced by
[Component-Based Architecture](https://banes-lab.com/records/arch/component-based-architecture.md)

### Layer Leakage

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Letting an inner layer depend on an outer one, violating the direction of the dependency rule.

Referenced by
[Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)

### Layer Separation

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that responsibilities be divided into distinct, ordered layers.

Referenced by
[Layered Architecture](https://banes-lab.com/records/arch/layered-architecture.md)

### Layer Skipping

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Bypassing intermediate layers to call a distant layer directly, undermining the layering.

Referenced by
[Layered Architecture](https://banes-lab.com/records/arch/layered-architecture.md)

### Locality of Change

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to make a feature's changes in one place because its code is grouped together.

Referenced by
[Package by Feature](https://banes-lab.com/records/arch/package-by-feature.md)

### Monolithic Transform Function

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Doing all processing in one large transform instead of a series of composable filter stages.

Referenced by
[Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)

### Operational Simplicity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which a single deployable unit keeps building, deploying, and operating simple.

Referenced by
[Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)

### Package by Technical Layer Only

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Organizing code by technical layer alone, scattering each feature across many packages.

Referenced by
[Package by Feature](https://banes-lab.com/records/arch/package-by-feature.md)

### Ports

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that the core define abstract interface points through which all external interaction passes.

Referenced by
[Ports and Adapters Architecture](https://banes-lab.com/records/arch/ports-and-adapters-architecture.md)

### Reorderable Stages

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to reorder or recombine independent processing stages.

Referenced by
[Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)

### Replicated In-Memory State

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that application state be kept in replicated in-memory grids rather than a central store.

Referenced by
[Space-Based Architecture](https://banes-lab.com/records/arch/space-based-architecture.md)

### Shared Monolithic Application

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Building one large shared application instead of composing independently-governed services.

Referenced by
[Service-Oriented Architecture](https://banes-lab.com/records/arch/service-oriented-architecture.md)

### Shared Technical Concerns

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The degree to which grouping by feature complicates sharing cross-cutting technical code.

Referenced by
[Package by Feature](https://banes-lab.com/records/arch/package-by-feature.md)

### Structured Code Organization

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to organize code predictably by assigning each responsibility to a layer.

Referenced by
[Layered Architecture](https://banes-lab.com/records/arch/layered-architecture.md)

### Transactional Simplicity

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The ability to use straightforward local transactions when all state lives in one process.

Referenced by
[Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)

### Unbounded Big Ball of Mud

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
Letting a system grow without structure into a tangled mass with no clear boundaries.

Referenced by
[Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)

### Unified Deployment Boundary

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that the whole application build and deploy as one unit.

Referenced by
[Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)

### Uniform Stage Interface

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that every stage share one interface so stages can be composed freely.

Referenced by
[Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)

### Use Cases

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Codebase / System Architecture Styles](https://banes-lab.com/ontology/lexicon/lex-category-codebase-system-architecture-styles.md)
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Definition
The requirement that application operations be captured as explicit use cases in their own layer.

Referenced by
[Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)

## Links to

- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
- [Ports and Adapters Architecture](https://banes-lab.com/records/arch/ports-and-adapters-architecture.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Layered Architecture](https://banes-lab.com/records/arch/layered-architecture.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Clean Architecture](https://banes-lab.com/records/arch/clean-architecture.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Space-Based Architecture](https://banes-lab.com/records/arch/space-based-architecture.md)
- [Component-Based Architecture](https://banes-lab.com/records/arch/component-based-architecture.md)
- [capability](https://banes-lab.com/records/kind/capability.md)
- [Service-Oriented Architecture](https://banes-lab.com/records/arch/service-oriented-architecture.md)
- [Microservices](https://banes-lab.com/records/arch/microservices.md)
- [Hexagonal Architecture](https://banes-lab.com/records/arch/hexagonal-architecture.md)
- [Pipes and Filters](https://banes-lab.com/records/arch/pipes-and-filters.md)
- [Package by Feature](https://banes-lab.com/records/arch/package-by-feature.md)
- [Monolith Architecture](https://banes-lab.com/records/arch/monolith-architecture.md)
