# Domain Architecture

> 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-domain-architecture

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.

### Aggregate Size

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which enlarging an aggregate to enforce invariants increases contention and load on it.

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

### Anemic Model

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
A domain model holding only data with no behavior, pushing all logic into separate procedures.

Referenced by
[Domain Model](https://banes-lab.com/records/arch/domain-model.md)

### Anemic Transaction Script

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
Implementing business logic as procedural scripts over data-only objects, with no rich domain model.

Referenced by
[Domain-Driven Design (DDD)](https://banes-lab.com/records/arch/domain-driven-design.md)

### Business Rule Encapsulation

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to keep business rules inside the domain objects they govern.

Referenced by
[Domain Model](https://banes-lab.com/records/arch/domain-model.md)

### Cross-Context Reuse

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which isolating each context's model limits reusing models across contexts.

Referenced by
[Bounded Context](https://banes-lab.com/records/arch/bounded-context.md)

### Cross-Entity Domain Logic

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to place logic that spans several entities in a dedicated domain service.

Referenced by
[Domain Service](https://banes-lab.com/records/arch/domain-service.md)

### Documentation Overhead

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree of ongoing effort to document and maintain the map of relationships between contexts.

Referenced by
[Context Mapping](https://banes-lab.com/records/arch/context-mapping.md)

### Domain Alignment

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to keep the software model closely aligned with the business domain it serves.

Referenced by
[Domain-Driven Design (DDD)](https://banes-lab.com/records/arch/domain-driven-design.md)

### Domain Purity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which the domain model stays free of external and infrastructure concerns.

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

### Explicit Boundary

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The requirement that a clear boundary separate the domain from external systems it integrates with.

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

### Identity-Based Equality

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to treat two objects as the same when they share an identity, regardless of their attributes.

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

### Implicit Integration

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
Integrating contexts through undocumented, assumed connections instead of explicit, mapped relationships.

Referenced by
[Context Mapping](https://banes-lab.com/records/arch/context-mapping.md)

### Integration Clarity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which relationships between contexts are made explicit and understandable.

Referenced by
[Context Mapping](https://banes-lab.com/records/arch/context-mapping.md)

### Legacy/System Integration

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to integrate a legacy or external system without letting its model corrupt the domain.

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

### Lifecycle Tracking

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to track an entity as the same thing through changes over its lifetime.

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

### Object Count

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which modeling many concepts as distinct value objects increases the number of objects.

Referenced by
[Value Object](https://banes-lab.com/records/arch/value-object.md)

### Persistence Simplicity

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which a rich domain model complicates straightforward mapping to storage.

Referenced by
[Domain Model](https://banes-lab.com/records/arch/domain-model.md)

### Relationship Semantics

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The requirement that each relationship between bounded contexts carry a defined meaning.

Referenced by
[Context Mapping](https://banes-lab.com/records/arch/context-mapping.md)

### Root-Guarded Invariants

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to enforce an aggregate's invariants by routing all changes through its root.

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

### Self-Validating Values

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability for a value object to guarantee its own validity at construction.

Referenced by
[Value Object](https://banes-lab.com/records/arch/value-object.md)

### Shared Global Model

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
Forcing one global model across the whole system, so unrelated parts are coupled through it.

Referenced by
[Bounded Context](https://banes-lab.com/records/arch/bounded-context.md)

### Shared Model Coupling

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
Coupling a domain to an external system's model by sharing it directly, so their changes ripple across.

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

### Side-Effect-Free Equality

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to compare value objects by their contents with no side effects.

Referenced by
[Value Object](https://banes-lab.com/records/arch/value-object.md)

### Simple CRUD

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The degree to which a full domain model adds overhead where simple create-read-update-delete would suffice.

Referenced by
[Domain-Driven Design (DDD)](https://banes-lab.com/records/arch/domain-driven-design.md)

### Stable Identity

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The requirement that an entity keep one stable identifier throughout its lifetime.

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

### Transactional Consistency Boundary

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The ability to treat an aggregate as the unit within which invariants hold atomically.

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

### Translation Model

- Kind: [model](https://banes-lab.com/records/kind/model.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
A mapping between an external system's concepts and the domain's own, keeping the two vocabularies separate.

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

### Value Equality

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Domain Architecture](https://banes-lab.com/ontology/lexicon/lex-category-domain-architecture.md)
- Layer: [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)

Details

Definition
The requirement that two value objects be treated as equal when all their attributes match.

Referenced by
[Value Object](https://banes-lab.com/records/arch/value-object.md)

## Links to

- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [Domain Modeling](https://banes-lab.com/records/layer/domain-modeling.md)
- [Aggregate](https://banes-lab.com/records/arch/aggregate.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Domain Model](https://banes-lab.com/records/arch/domain-model.md)
- [Domain-Driven Design (DDD)](https://banes-lab.com/records/arch/domain-driven-design.md)
- [capability](https://banes-lab.com/records/kind/capability.md)
- [Bounded Context](https://banes-lab.com/records/arch/bounded-context.md)
- [Domain Service](https://banes-lab.com/records/arch/domain-service.md)
- [Context Mapping](https://banes-lab.com/records/arch/context-mapping.md)
- [Anti-Corruption Layer](https://banes-lab.com/records/arch/anti-corruption-layer.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Entity](https://banes-lab.com/records/arch/entity.md)
- [Value Object](https://banes-lab.com/records/arch/value-object.md)
- [model](https://banes-lab.com/records/kind/model.md)
