Runtime Contract
This guide defines the runtime guarantees that Excalibur provides during message execution.
Execution Modes
Dispatch runs in one of two modes:
- Local mode: message is handled in-process.
- Transport mode: message is routed through configured transport adapters.
Routing is resolved before pipeline execution.
Pipeline Contract
Execution order is:
- Dispatcher receives message + caller cancellation token.
- Route decision is resolved.
- Middleware executes in registration order.
- Final handler/transport execution occurs.
- Result is returned to caller.
Cancellation Contract
- Cancellation tokens are part of the API contract and must propagate end-to-end.
DispatchChildAsyncinherits correlation and cancellation budget.- Canceled requests must not continue work in the same request pipeline.
Context Contract
When context is materialized, these fields are expected:
CorrelationIdCausationId- message identity/type metadata
Lean local paths can defer full context creation, but correlation/causation semantics must remain correct whenever context is requested.
Retry and Poison Contract
- Retry behavior is policy/profile based.
- Exhausted retries route to poison/dead-letter handling when configured.
- Dead-letter records must retain actionable failure metadata.
Release Enforcement
This contract is release-blocked by:
- transport conformance tests,
- release-blocking CI test governance gate,
- architecture/governance validation.