Trading

Order routing that survives a volatile open

A broker-dealer kept losing fills in the first ten minutes of the session. The fix was in the routing layer, not the venue.

The situation

Rejected orders clustered around the open. The desk blamed venue capacity; the logs said otherwise. A single-threaded routing layer was queueing acknowledgements behind risk checks that re-read the same position state on every message.

What we built

An in-memory position cache with deterministic replay, a routing layer split per venue session, and a kill switch that degrades to a safe venue instead of dropping flow.

Every path was replayed against a full day of captured market data before it touched production.

The outcome

Round-trip latency at the open fell by an order of magnitude and reject rates returned to baseline. The desk now runs the same infrastructure across three venues with one operational runbook.