Execution algorithm workspace built on mkt.
crates/exh: reliable execution kernelcrates/exh-kit: typed execution signals, helpers, testkit, and reference algorithms
- User algorithms declare the desired execution shape, not imperative place/cancel/query steps.
exhowns journal/replay, multi-child state, pending side-effect recovery, and target-state reconciliation.exh-kitowns ergonomic layers: signal canonicalization, typed algorithm metadata schemas, reusable execution primitives, and high-quality examples.mktremains the trading primitive layer.
Engineadvances from explicitobserved_at, typed signals, and external order observations.- External order updates are first-class; driver queries are only recovery fallback for pending actions.
- Algorithm implementations can remain stateless; execution-local scratchpad and audit metadata are journaled through decisions.
- Each
advanceexecutes at most one external side effect and then performs bounded internal convergence toward the current desired state. - Strategy code can use
exh_kit::schemawrappers to encode/decode algorithm state and audit structs without constructing raw JSON payloads.
MemoryJournalexists for tests and simple runs.SqliteJournalprovides a durable local backend on SQLite WAL withFULLsynchronous mode.
cargo run -p exh-kit --example robust_vwapcargo run -p exh-kit --example maker_laddercargo run -p exh-kit --example deadline_catchupcargo run -p exh-kit --example adaptive_ioc_portcargo run -p exh-kit --example hierarchical_iceberg_oehrlcargo run -p exh-kit --example target_aware_povcargo run -p exh-kit --example market_limit_rl_switchcargo run -p exh-kit --example basket_parent_allocator
See docs/adaptive_ioc_port.md for the gaps exposed while porting the top50 rotation executor's adaptive IOC loop. See docs/recent_execution_strategy_ports.md for the research-to-example mapping and framework gaps exposed by recent advanced execution strategies.