Broker OMS: many clients behind one door
Each OMS instance owns one broker's API and holds every client account that trades through it. It handles the parts brokers do not agree on: dealer versus retail endpoints, freeze quantities, status semantics, and what a timeout means.
- ms colo order path
- 10–20
- ms over internet
- 80–500
Built here.
- 01
A multi-client OMS per broker: every active account is loaded from the client master, authenticated, and given its own connection, cache, rate limiter and execution lane.
- 02
Automatic dealer versus retail account detection, which changes the endpoints and identifiers used for that client's reads and orders.
- 03
Token-aware login that reuses the day's valid credential instead of re-authenticating on every restart.
- 04
Order types beyond the basics — market, limit, and aggressive and passive price-chasing variants — plus slicing against exchange freeze quantities.
- 05
A layered status resolution path: live socket state first, then cached snapshots, then order and trade book reads, then a direct query — so a status answer degrades in quality rather than disappearing.
- 06
A reconciliation service that treats a timeout as undecided, rechecks the venue off the hot path, and only then writes the book, aggregating partial fills correctly.
- 07
Per-host circuit breaking with backoff, stuck-order detection and socket reconnection supervision, with alerting when a lane opens.
- 08
Paper trading through the same door as live, so research and production are not two different programs.
- 09
A separate test harness with a documented API surface, used to exercise the endpoints independently of the live desk.
Failure modes.
- A timeout, which is not a fill — the order may already be live at the exchange, so the venue's answer decides, not the clock.
- A broker host having a bad morning, which trips that lane open and backs off without touching the other four.
- A dropped status socket, which falls through to polling rather than silently losing fills.
The blotter matches the exchange. That sentence is the entire job of this layer, and everything above is what it costs to make it true.