vike
ConceptsEvents

OrderDenied

The OrderDenied event: what it carries, which side emits it, and whether it ends an order's life.

OrderDenied is one of the 20 variants of the tagged union every part of Vike Trader speaks: vike_model::Event. The core loop consumes it, the journal replays it, and fixtures pin it — one vocabulary from a venue's socket to a strategy's callback.

The payload

It carries a OrderDenied. On the wire the frame is tagged OrderDenied, the variant name.

Who emits it

Rust, before the wire. The risk gate refused the order, so nothing was sent. A denial is terminal and local: no venue ever saw it.

Where it lands

Events reach the core through one ingest channel and are folded in arrival order. This one is terminal: it ends the order's life, and the contract every adapter is held to is exactly-one-terminal — an order may not reach two, and it may not silently reach none. A dead venue path has to synthesize a rejection rather than let the order vanish.

The order lifecycle walks the sequence a working order produces; the execution client seam is the contract every venue adapter implements to produce these; and the journal is what makes a session of them replayable.

Where this comes from

vike_model::Event — the variant, its payload type and its wire tag, exported as rosters.json at every release. The wire tags are checked against the enum's own source at build time, so a renamed variant or a changed tag reddens the product tree before it could reach this page.

On this page