Order routing (from click to matching engine)
Order routing is the path an order travels from a trading application to the exchange's matching engine and back: the platform, the broker's routing system and risk checks, the futures commission merchant's route to the exchange, the exchange's gateway and the engine. Each hop can accept, reject or delay the order, and each acknowledgement comes back along the same chain.
Senzoukria · Glossary · Updated September 2026
The hops
- Application: builds the order from the ticket, checks its own guards.
- Routing vendor or broker system: authenticates the session and the account.
- FCM risk layer: checks the account's limits, margin and permissions.
- Trade route: the connection from that FCM to the exchange for this product.
- Exchange gateway and matching engine: validates price and order type, then matches or rests the order.
Acknowledgement is not execution
Hypothetical timeline: a limit order leaves the application at t = 0, the gateway acknowledges it at t = 38 ms, and it fills at t = 1.2 s when the market trades to its price. The 38 ms is the routing round trip; the 1.2 s is market time. Confusing the two makes an execution look faster than it was.
In Senzoukria
On a Rithmic connection, orders go through the order plant session of the account shown on screen. That session resolves a trade route for each combination of FCM and exchange, and every order is refused until the route for its exchange is known ('no trade route resolved yet'). Orders carry the account id, FCM id, IB id and route; each command is correlated with its response through a tag echoed by the gateway and fails after waiting 8 seconds without an answer. Before sending, the backend checks that the order-plant session routes to the account the order was built for, and refuses it otherwise.
The trading panel measures the time from click to gateway acknowledgement for placements and cancellations separately, and its hint states that this is not the time to a fill.
Where orders get rejected
| Hop | Typical reason |
|---|---|
| Application | Size above the configured cap, trading disabled on the connection |
| Broker or vendor | Session not logged in, account not entitled to trade |
| FCM risk | Insufficient margin, position or order limits |
| Exchange | Price outside the band, order type not accepted, market not open |
Common mistakes
- Reading an acknowledgement as a fill.
- Assuming a rejection comes from the platform when the text names a risk or exchange reason.
- Switching accounts on screen without confirming where the session routes.
Related
In the same section
- Cancel on disconnect
- Colocation
- Direct market access
- Execution report
- FIX protocol
- Order ticket
- Order modification
- Other-timeframe participant
This page in other languages
Frequently asked questions
- What is a trade route?
- The designation of the path from a futures commission merchant to an exchange. On Rithmic, software requests the available routes for an account and must name the right one for the product's exchange with each order.
- Why can the same order be fast one day and slow another?
- Every hop adds processing and network time that varies with load, and the broker's risk checks and the exchange's queues are outside the application's control. Measuring the acknowledgement time over many orders is the way to see it.