# Dynamic Dispatch
**Domain:** Runtime Design / Language Implementation
**Doc Type:** Canonical Concept Node
**Maturity:** Developing
**Related:** [[wiki/Capability Registry|Capability Registry]], [[wiki/Permissioned Capability|Permissioned Capability]], [[wiki/Canonical Capability Name|Canonical Capability Name]]
---
## Definition
**Dynamic dispatch selects an operation at runtime from a name, type, message, or other changing value.** It is powerful because programs can compose behavior without hard-coding every call site, and dangerous when untrusted input can reach arbitrary functions.
## XDO Context
The historical DO engine experimented with dynamic dispatch across commands and functions. A modern XDO should resolve only canonical names present in a capability registry, validate inputs against the contract, and require permission for host effects. Runtime flexibility should not become an accidental `eval` boundary.
## Key Insight
**Dynamic dispatch becomes safe when name resolution is narrow, typed, permissioned, and observable.**
## See Also
[[projects/XDO - Executable Markdown and Portable Workflows|XDO]], [[wiki/Capability Registry|Capability Registry]], [[wiki/Error Behavior|Error Behavior]], [[wiki/Technical Terms|Technical Terms]]