Files
foxhunt/services/broker_gateway_service
jgrusewski e047c1eea3 refactor: rename all service crates to kebab-case
Rename 7 service binaries from snake_case to kebab-case to match
K8s deployment names. Update Cargo.toml package/bin names, K8s
manifest S3 paths and commands, and cross-crate dependency keys.

- api_gateway → api-gateway
- trading_service → trading-service
- broker_gateway_service → broker-gateway
- ml_training_service → ml-training-service
- backtesting_service → backtesting-service
- trading_agent_service → trading-agent-service
- data_acquisition_service → data-acquisition-service

broker-gateway gets an explicit [lib] name = "broker_gateway_service"
since its new package name maps to broker_gateway (not the original
broker_gateway_service used in source code). All other services map
correctly with Rust's automatic hyphen-to-underscore conversion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:06:00 +01:00
..

broker_gateway_service

Broker communication gateway with FIX 4.2/4.4 protocol, order routing, execution management, and position reconciliation via CQG.

Status: MVP (database persistence only, FIX protocol deferred to Phase 2)

Key Types

  • BrokerGatewayService -- main gRPC service (7 methods)
  • SequenceManager -- FIX MsgSeqNum tracking
  • OrderStateMachine -- order lifecycle state transitions
  • PositionReconciler -- 3-way sync (CQG, database, trading service)
  • CircuitBreaker -- broker connection protection

gRPC Endpoints

  • RouteOrder -- submit order to broker
  • CancelOrder -- cancel existing order
  • GetOrderStatus -- query order state
  • GetPositions -- current account positions
  • StreamExecutions -- real-time execution reports

Configuration

  • GRPC_PORT (50056) -- gRPC listen port
  • HEALTH_PORT (8086) -- HTTP health check
  • METRICS_PORT (9096) -- Prometheus metrics
  • DATABASE_URL -- PostgreSQL (broker_orders, broker_executions tables)
  • REDIS_URL -- session state and sequence numbers
  • FIX_* -- FIX session parameters (Phase 2)

Testing

SQLX_OFFLINE=true cargo test -p broker_gateway_service --lib