feat(proto): add 9 streaming RPCs for TUI live data
New poll-to-stream RPCs (gateway adapters): - broker_gateway: StreamAccountState, StreamSessionStatus - risk: StreamCircuitBreakerStatus, StreamRiskMetrics - data_acquisition: StreamDownloadStatus - ml: StreamModelStatus - trading_agent: StreamAgentStatus - trading: StreamPortfolioSummary, StreamOrderBook Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,12 @@ service BrokerGatewayService {
|
||||
|
||||
// Health check
|
||||
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
|
||||
|
||||
// Server-streaming: polls GetAccountState at gateway level
|
||||
rpc StreamAccountState(StreamAccountStateRequest) returns (stream GetAccountStateResponse);
|
||||
|
||||
// Server-streaming: polls GetSessionStatus at gateway level
|
||||
rpc StreamSessionStatus(StreamSessionStatusRequest) returns (stream GetSessionStatusResponse);
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
@@ -203,6 +209,16 @@ enum ExecutionType {
|
||||
EXECUTION_TYPE_REJECTED = 4; // Order rejected
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamAccountStateRequest {
|
||||
uint32 interval_seconds = 1; // 0 = server default (3s)
|
||||
}
|
||||
|
||||
message StreamSessionStatusRequest {
|
||||
uint32 interval_seconds = 1; // 0 = server default (5s)
|
||||
}
|
||||
|
||||
enum SessionState {
|
||||
SESSION_STATE_DISCONNECTED = 0;
|
||||
SESSION_STATE_CONNECTED = 1;
|
||||
|
||||
@@ -21,6 +21,15 @@ service DataAcquisitionService {
|
||||
// Service Health and Status
|
||||
// Check service health and resource availability
|
||||
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
|
||||
|
||||
// Server-streaming: polls ListDownloadJobs at gateway level
|
||||
rpc StreamDownloadStatus(StreamDownloadStatusRequest) returns (stream ListDownloadJobsResponse);
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamDownloadStatusRequest {
|
||||
uint32 interval_seconds = 1; // 0 = server default (5s)
|
||||
}
|
||||
|
||||
// --- Core Request/Response Messages ---
|
||||
|
||||
@@ -39,6 +39,16 @@ service MLService {
|
||||
|
||||
// Stream real-time signal strength indicators across models
|
||||
rpc StreamSignalStrength(StreamSignalStrengthRequest) returns (stream SignalStrengthEvent);
|
||||
|
||||
// Server-streaming: polls GetModelStatus at gateway level
|
||||
rpc StreamModelStatus(StreamModelStatusRequest) returns (stream GetModelStatusResponse);
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamModelStatusRequest {
|
||||
string model_name = 1; // empty = all models
|
||||
uint32 interval_seconds = 2; // 0 = server default (5s)
|
||||
}
|
||||
|
||||
// Prediction Messages
|
||||
|
||||
@@ -33,6 +33,24 @@ service RiskService {
|
||||
|
||||
// Get status of all circuit breakers and safety mechanisms
|
||||
rpc GetCircuitBreakerStatus(GetCircuitBreakerStatusRequest) returns (GetCircuitBreakerStatusResponse);
|
||||
|
||||
// Server-streaming: polls GetCircuitBreakerStatus at gateway level
|
||||
rpc StreamCircuitBreakerStatus(StreamCircuitBreakerStatusRequest) returns (stream GetCircuitBreakerStatusResponse);
|
||||
|
||||
// Server-streaming: polls GetRiskMetrics at gateway level
|
||||
rpc StreamRiskMetrics(StreamRiskMetricsRequest) returns (stream GetRiskMetricsResponse);
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamCircuitBreakerStatusRequest {
|
||||
optional string symbol = 1; // Filter by symbol (all if not specified)
|
||||
uint32 interval_seconds = 2; // 0 = server default (2s)
|
||||
}
|
||||
|
||||
message StreamRiskMetricsRequest {
|
||||
optional string portfolio_id = 1; // Portfolio identifier (default if not specified)
|
||||
uint32 interval_seconds = 2; // 0 = server default (3s)
|
||||
}
|
||||
|
||||
// VaR (Value at Risk) Messages
|
||||
|
||||
@@ -59,6 +59,25 @@ service TradingService {
|
||||
|
||||
// Get regime transition history for a symbol
|
||||
rpc GetRegimeTransitions(GetRegimeTransitionsRequest) returns (GetRegimeTransitionsResponse);
|
||||
|
||||
// Server-streaming: polls GetPortfolioSummary at gateway level
|
||||
rpc StreamPortfolioSummary(StreamPortfolioSummaryRequest) returns (stream GetPortfolioSummaryResponse);
|
||||
|
||||
// Server-streaming: polls GetOrderBook at gateway level
|
||||
rpc StreamOrderBook(StreamOrderBookRequest) returns (stream GetOrderBookResponse);
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamPortfolioSummaryRequest {
|
||||
string account_id = 1; // Account ID for portfolio summary
|
||||
uint32 interval_seconds = 2; // 0 = server default (3s)
|
||||
}
|
||||
|
||||
message StreamOrderBookRequest {
|
||||
string symbol = 1;
|
||||
int32 depth = 2;
|
||||
uint32 interval_seconds = 3; // 0 = server default (1s)
|
||||
}
|
||||
|
||||
// Order Management Messages
|
||||
|
||||
@@ -61,6 +61,15 @@ service TradingAgentService {
|
||||
|
||||
// Service Health
|
||||
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
|
||||
|
||||
// Server-streaming: polls GetAgentStatus at gateway level
|
||||
rpc StreamAgentStatus(StreamAgentStatusRequest) returns (stream GetAgentStatusResponse);
|
||||
}
|
||||
|
||||
// Streaming request messages
|
||||
|
||||
message StreamAgentStatusRequest {
|
||||
uint32 interval_seconds = 1; // 0 = server default (3s)
|
||||
}
|
||||
|
||||
// Universe Selection Messages
|
||||
|
||||
Reference in New Issue
Block a user