Expand description
Submit request broadcaster for redundant order submission.
This module provides the SubmitBroadcaster which fans out submit requests
to multiple HTTP clients in parallel for redundancy. The broadcaster is triggered
when the SubmitOrder command contains params["broadcast_submit_tries"].
Key design patterns:
- Dependency injection via traits: Uses
SubmitExecutortrait to abstract the HTTP client, enabling testing without#[cfg(test)]conditional compilation. - Trait objects over generics: Uses
Arc<dyn SubmitExecutor>to avoid generic type parameters on the public API (simpler Python FFI). - Short-circuit on first success: Aborts remaining requests once any client succeeds, minimizing latency.
- Idempotent rejection handling: Recognizes duplicate clOrdID as expected rejections for debug-level logging without noise.
Structsยง
- Broadcaster
Metrics - Broadcaster metrics snapshot.
- Client
Stats - Per-client statistics.
- Submit
Broadcaster - Broadcasts submit requests to multiple HTTP clients for redundancy.
- Submit
Broadcaster Config - Configuration for the submit broadcaster.