Indirection¶
Core Idea¶
Introducing an intermediate reference or layer to manage access or interaction, rather than direct coupling between components.
How would you explain it like I'm…
Going Through A Helper
Pointing Through A Middleman
Reference-Layer Decoupling
Broad Use¶
-
Software: Pointers and references decouple data from its physical location in memory.
-
Networking: DNS (Domain Name System) translates human-friendly domain names to IP addresses.
-
Security: Proxy servers or VPNs as a layer between users and resources.
-
Management: Organizational hierarchies that buffer direct interaction between top-level leadership and frontline workers.
Clarity¶
Simplifies and hides complexity behind intermediate layers, ensuring flexible and maintainable connections.
Manages Complexity¶
Minimizes direct dependencies, allowing systems to evolve or reorganize without breaking everything upstream or downstream.
Abstract Reasoning¶
Encourages designing with layers and interfaces, focusing on behaviors rather than internal implementations.
Knowledge Transfer¶
Appears across communication protocols, management structures, and design patterns in various fields that require intermediate layers for abstraction or control.
Example¶
DNS in networking parallels how phone directories or administrative assistants mediate communication: you do not directly memorize everyone's address but use a system of references to reach the right endpoint.
Relationships to Other Abstractions¶
Current abstraction Indirection Prime
Parents (3) — more general patterns this builds on
-
Indirection is a kind of Layering Prime
Indirection is a specific kind of layering, interposing a reference between consumer and provider to decouple them.
-
Indirection presupposes Abstraction Prime
Indirection presupposes abstraction because interposing a referencing layer requires deciding which features of the provider to retain as the contract.
-
Indirection is part of Function (Mapping) Prime
Indirection contains the reference-to-provider mapping that its resolution mechanism evaluates while decoupling consumer from provider.
Children (11) — more specific cases that build on this
-
Access URL Domain-specific is a kind of Indirection
An access endpoint is indirection specialized to a perishable digital handle resolved through routing infrastructure under a protocol contract.
-
Pointer Domain-specific is a kind of Indirection
A pointer is indirection specialized to a machine-memory address that is dereferenced to reach its referent.
-
Transshipment Domain-specific is a kind of Indirection
Transshipment is indirection specialized to physical cargo routed through an intermediate transfer point where it changes vehicle or mode and incurs handling overhead.
-
Future Or Promise Prime is a kind of, typical Indirection
A future/promise is a reified placeholder interposed between consumer and eventual value, matching indirection's definition of an interposed reference decoupling access from binding.
-
Persistent Identifier Prime is a kind of Indirection
A persistent identifier is a specific, committed, institutionally-maintained indirection (opaque token and declared scope and guaranteed resolver) — a specialization of the bare indirection technique with a standing institutional obligation.
- Registry-Mediated Discovery Prime is a kind of Indirection
The specific three-party form of indirection — provider, consumer, and a registry that is its own addressable entity — whose payoff is turnover survival (a provider can relocate without consumer change).
- Virtualization Prime is a kind of Indirection
Virtualization is a specialization of indirection in which the interposed reference simulates a dedicated underlying resource over a shared substrate.
- Identifier Assignment Prime presupposes, typical Indirection
Identifier_assignment CREATES the handle that indirection later resolves (dereference uses indirection); minting+binding is a prior distinct act that presupposes the indirection-resolution machinery.
- Publish Subscribe Prime presupposes, typical Indirection
Pub-sub routes through a named intermediary TOPIC/broker rather than to a recipient — 'the topic itself becomes an object,' a reified intermediary reference.
- Alias-to-Authority Mapping Prime presupposes Indirection
Alias-to-authority is implemented through indirection (a resolution layer routes a variant to its authority) but is the specific asymmetric, many-to-one, identity-aggregating use of it.
- Citation Pointer Domain-specific is a decomposition of Indirection
Removing documentary style leaves a reference plus a resolver that reaches a target without embedding the target itself.
Hierarchy paths (3) — routes to 3 parentless roots
- Indirection → Layering
- Indirection → Abstraction
- Indirection → Function (Mapping)
Not to Be Confused With¶
- Indirection is not Metaphor because indirection is a concrete mechanism—a reference and a resolution process—that decouples components, whereas metaphor is a conceptual mapping from a source domain to a target domain; metaphor enables understanding, indirection enables flexibility and substitutability.
- Indirection is not Abstraction because abstraction is a conceptual activity of modeling a system with its essential features, whereas indirection is a concrete mechanism—a reference, name, or handle—that can support abstraction but exists independently; one can have abstraction without indirection (on paper), and indirection without explicit abstraction (a pointer that happens to enable substitution).
- Indirection is not Modularity because modularity is the organization of a system into discrete, semi-independent units, whereas indirection is the mechanism enabling substitution and loose coupling between those units; indirection is a tool that can support modularity, but modules can be tightly interdependent without indirection.