This map captures the only supported deterministic decision pipeline for TradingChassis Core.
EventStreamEntryarrives withProcessingPosition.process_event_entryforwards toprocess_canonical_event.- Canonical reducer mutates
StrategyStatedeterministically. - Strategy evaluation produces generated Intents.
- Candidate records are built and reconciled/dominated.
- Risk Engine (policy) accepts/rejects generated candidates.
- Execution Control plan/apply computes Queue/dispatch/scheduling outputs.
CoreStepResultreturnsdispatchable_intentsand optionalcontrol_scheduling_obligation(non-canonical; rate-limit deferral only in the current slice—see../flows/control-time-and-scheduling.md).- Runtime can dispatch later and inject further canonical Events (including
ControlTimeEventwhen an obligation is realized); Core does not perform external dispatch or mutate Queues outside this pipeline.
- Single-entry flow:
run_core_step - Wakeup reduction:
run_core_wakeup_reduction - Wakeup decision/apply:
run_core_wakeup_decision - Wakeup convenience wrapper:
run_core_wakeup_step
- Processing Order monotonicity is enforced by
ProcessingPosition. - Core logic is side-effect-safe apart from deterministic State mutation.
- Runtime adapters and external dispatch concerns are outside Core.
CoreWakeupStep is not "parallel Event processing".
It is deterministic batch processing: the Runtime gives Core an ordered sequence of
canonical EventStreamEntry values, and Core reduces them in that order before making
one decision.
Wakeup flow:
- Runtime supplies an ordered batch of
EventStreamEntryvalues. run_core_wakeup_reductioncallsprocess_event_entryfor each entry in order.CoreWakeupStrategyEvaluator.evaluateruns once on the fully reduced State (CoreWakeupStrategyContextcarries all entries).run_core_wakeup_decisionsnapshots queued Intents once, combines generated + queued once, applies dominance/reconciliation once, Policy Admission once, and Execution Control plan/apply once.CoreStepResult.dispatchable_intentsis returned; Runtime dispatches later.
run_core_step remains single-entry: one reduction, one step-level Strategy evaluation,
one decision pass.
- Steps 1–3, 5, and 8 in the flow above (reduction, candidates,
CoreStepResult) - Policy admission machinery when
CorePolicyAdmissionContextis provided - Execution Control plan/apply machinery when apply context is provided
- Strategy —
CoreStepStrategyEvaluatororCoreWakeupStrategyEvaluator - Policy —
PolicyIntentEvaluatorviaCorePolicyAdmissionContext - Execution Control instance —
ExecutionControlviaCoreExecutionControlApplyContext - Configuration — optional
CoreConfiguration - Event bus —
StrategyState(event_bus=...);NullEventBusfor standalone use
- Risk Engine (
RiskEngine) — optional built-inPolicyIntentEvaluator(examples/core_step_with_risk_engine.py) ExecutionControl— default queue/rate/inflight behavior (instance still supplied by caller)NullEventBus— no-op bus for tests and examples
See ../reference/public-api.md and ../how-to/use-policy-evaluator.md.