# Runtime Discovery / Dynamic Binding

> 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-runtime-discovery-dynamic-binding

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.

### Capability Addition without Core Modification

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The ability to add new capabilities at runtime without modifying the core.

Referenced by
[Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)

### Closed Static Core

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
A core fixed at build time that cannot accept new capabilities without being recompiled.

Referenced by
[Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)

### Compile-Time Binding

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Binding a call to a specific implementation at compile time, so the target cannot vary at runtime.

Referenced by
[Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)

### Conventions

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The requirement that components follow shared naming or placement conventions so they can be found automatically.

Referenced by
[Auto-Discovery](https://banes-lab.com/records/arch/auto-discovery.md)

### Deferred Implementation Choice

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The ability to postpone choosing a concrete implementation until runtime.

Referenced by
[Late Binding](https://banes-lab.com/records/arch/late-binding.md)

### Dynamic Routing

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The ability to route requests to service instances discovered at runtime.

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

### Early Binding

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Fixing which implementation a call uses at compile time, preventing a runtime choice.

Referenced by
[Late Binding](https://banes-lab.com/records/arch/late-binding.md)

### Environment-Specific Composition

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The ability to assemble different implementations per environment at runtime.

Referenced by
[Runtime Binding](https://banes-lab.com/records/arch/runtime-binding.md)

### Extensibility

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The degree to which new behavior can be added with minimal change to existing code.

Referenced by
[Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)

### Hardcoded Endpoints

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Hardcoding service network addresses instead of discovering them dynamically.

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

### Manual Registration

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Requiring each component to be registered by hand instead of being discovered automatically.

Referenced by
[Auto-Discovery](https://banes-lab.com/records/arch/auto-discovery.md)

### Registry/Discovery Mechanism

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
A facility that lets components find and resolve one another at runtime.

Referenced by
[Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)

### Replace Conditional with Polymorphism

- Kind: [technique](https://banes-lab.com/records/kind/technique.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Replacing a branching conditional on type with polymorphic dispatch through a shared interface.

Referenced by
[Dynamic Dispatch](https://banes-lab.com/records/arch/dynamic-dispatch.md)

### Runtime Discovery or Configuration

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The requirement that implementations be discoverable or configurable at runtime rather than fixed.

Referenced by
[Runtime Binding](https://banes-lab.com/records/arch/runtime-binding.md)

### Runtime Resolution

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The requirement that a symbol's concrete binding be resolved during execution rather than at compile time.

Referenced by
[Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)

### Self-Registration

- Kind: [capability](https://banes-lab.com/records/kind/capability.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The ability for a component to register itself on load without external wiring.

Referenced by
[Auto-Discovery](https://banes-lab.com/records/arch/auto-discovery.md)

### Startup Cost

- Kind: [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
The degree to which scanning for components at startup slows the system's initialization.

Referenced by
[Auto-Discovery](https://banes-lab.com/records/arch/auto-discovery.md)

### Static Linking

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Binding all components at build time through static linking, so nothing can be discovered at runtime.

Referenced by
[Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)

### Static Wiring

- Kind: [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- Category: [Runtime Discovery / Dynamic Binding](https://banes-lab.com/ontology/lexicon/lex-category-runtime-discovery-dynamic-binding.md)
- Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)

Details

Definition
Wiring components together at build time, so composition cannot vary at runtime.

Referenced by
[Runtime Binding](https://banes-lab.com/records/arch/runtime-binding.md)

## Links to

- [capability](https://banes-lab.com/records/kind/capability.md)
- [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)
- [Runtime Extensibility](https://banes-lab.com/records/arch/runtime-extensibility.md)
- [anti-pattern](https://banes-lab.com/records/kind/anti-pattern.md)
- [Dynamic Binding](https://banes-lab.com/records/arch/dynamic-binding.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Auto-Discovery](https://banes-lab.com/records/arch/auto-discovery.md)
- [Late Binding](https://banes-lab.com/records/arch/late-binding.md)
- [Service Discovery](https://banes-lab.com/records/arch/service-discovery.md)
- [Runtime Binding](https://banes-lab.com/records/arch/runtime-binding.md)
- [quality-attribute](https://banes-lab.com/records/kind/quality-attribute.md)
- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)
- [technique](https://banes-lab.com/records/kind/technique.md)
- [Dynamic Dispatch](https://banes-lab.com/records/arch/dynamic-dispatch.md)
