Module submitter

Module submitter 

Source
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 SubmitExecutor trait 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ยง

BroadcasterMetrics
Broadcaster metrics snapshot.
ClientStats
Per-client statistics.
SubmitBroadcaster
Broadcasts submit requests to multiple HTTP clients for redundancy.
SubmitBroadcasterConfig
Configuration for the submit broadcaster.