Institutional Fast Path Plan
This plan starts from the current foundation:
- FIX 4.4 raw TCP/TLS gateway.
- BSL Direct TCP/TLS binary gateway with compact action frames.
- BSL compact HTTP order-entry.
institutional_agentHMAC credentials.- Symbol-sharded execution path and BSL/FIX permission boundaries.
- Private execution replay and drop-copy contracts.
The immediate beta product is BSL Direct TCP plus FIX 4.4, with compact HTTP as the compatibility path. SBE/FIXP and binary market data are the next protocol upgrades, not replacements for the current path.
Phase 0: Direct BSL/FIX foundation
Status: current implementation target.
| Item | Contract |
|---|---|
| Self-service bundle | GET /api/v1/bsl/connectivity and /api/v1/fix/connectivity. |
| FIX CompIDs | TargetCompID(56)=SENTICORE, stable client SenderCompID(49), TargetSubID(57)=order_entry/drop_copy. |
| BSL Direct TCP | senticore-bsl-tcp-v1, 48-byte handshake, 8-byte message header, 192-byte compact action frames, bounded gateway backpressure. |
| BSL direct HTTP | Same compact submit contract on a direct/DNS-only endpoint when assigned; compatibility path, not the primary low-latency path. |
| SDK examples | TypeScript/Python examples perform real FIX Logon with derived CompIDs. |
| Guardrail | api_agent remains rejected for BSL/FIX order entry. |
This phase removes onboarding friction and Cloudflare confusion while making the existing native binary gateway the official BSL order-entry transport.
Phase 1: SBE + FIXP order entry
Build this when a co-located or direct institutional client has passed Phase 0 conformance and needs lower parse/session overhead.
Reuse
| Existing component | Reuse |
|---|---|
institutional_agent HMAC | FIXP Negotiate/Establish session auth. |
| Windowed nonce and derived order id | Same action identity and replay model. |
| BSL order result contract | Same ack, durable, full boundaries. |
| BSL backpressure codes | Same fast reject vocabulary. |
| Symbol-sharded sequencer path | Same engine admission and ordering. |
New work
| Component | Scope |
|---|---|
| SBE schema | Versioned XML schema for place, cancel, replace, quote replace, mass cancel, heartbeat, reject, and execution result. |
| FIXP session | Negotiate, Establish, Sequence, Terminate, heartbeat, retransmit/gap recovery. |
| Binary gateway | Dedicated TCP/TLS service next to the current FIX gateway. |
| Reference codecs | Rust server codec, C++/Rust/TypeScript client codecs generated from the schema. |
| Conformance | Golden frames, sequence recovery, duplicate client order id, reconnect, and rate-limit tests. |
Success criteria
- No per-order HMAC signing inside the SBE stream after session establishment.
- Same account/risk/backpressure behavior as BSL/FIX.
- Stable monotone session sequence numbers with replay.
- SDK conformance client can place, cancel, replace, reconnect, and gap-fill.
Phase 2: Binary market data
Fast order entry is not enough for market makers if the book signal stays slow. Binary market data should follow the same versioned discipline.
Transport stages
| Stage | Use |
|---|---|
| TCP recoverable feed | First binary MD release; simple firewall and cloud deployment. |
| UDP multicast | Co-located lowest-latency release when there is real colo demand. |
Feed content
- Instrument directory.
- Snapshot marker.
- L2 book delta.
- Trade print.
- Market status/halt.
- Sequence reset/gap signal.
- Heartbeat.
Recovery model
- Every delta has a monotone feed sequence.
- Clients detect gaps locally.
- Snapshot plus
fromSeqreplay is the recovery path for TCP. - UDP multicast requires a separate TCP replay/snapshot channel.
Phase 3: Colo-grade operations
Only after a real direct institutional client needs it:
- DNS-only/direct cross-connect endpoint.
- IP allowlisting and dedicated rate tiers.
- Per-client conformance cert.
- Optional mTLS.
- Kernel-bypass or specialized NIC work only after TCP/TLS is proven to be the bottleneck.
Recommended sequence
- Make every market maker use the connectivity bundle and current FIX/BSL examples.
- Certify one live external client on BSL direct HTTP and FIX 4.4.
- Freeze the SBE action schema against the existing BSL action/result model.
- Build FIXP/SBE as a sibling gateway, not a rewrite of the matching engine.
- Add binary TCP market data before UDP multicast.
- Add UDP multicast only for co-located clients.
The current foundation makes this smaller than a greenfield exchange protocol, but SBE/FIXP is still a new wire/session layer. Treat it as a protocol product with schemas, golden frames, SDKs, and conformance tests.