market-data-failover.md 1.6 KB

行情回退事件契约

1. 回退指令事件

  • 用途:行情服务检测到主源异常后,向控制平面广播回退动作
  • 事件结构

    {
    "eventId": "uuid",
    "eventType": "market-data-failover",
    "exchange": "pacifica",
    "symbol": "BTC",
    "primaryChannel": "websocket",
    "backupChannel": "http",
    "detectTimestamp": "2025-09-27T12:10:00Z",
    "failoverDeadlineMs": 10000,
    "reason": "ws-stale-data",
    "metrics": {
    "wsLastUpdateMs": 3000,
    "httpLatencyMs": 400
    }
    }
    

2. 回退完成通知

{
  "eventId": "uuid",
  "eventType": "market-data-failover-complete",
  "exchange": "pacifica",
  "symbol": "BTC",
  "completedTimestamp": "2025-09-27T12:10:07Z",
  "failoverMethod": "http",
  "synthPrice": {
    "mid": 109305.2,
    "bid": 109302.1,
    "ask": 109308.3
  },
  "durationMs": 7000,
  "triggeredOrders": [
    "recalc-delta",
    "resume-trading"
  ]
}

3. 回退失败警报

{
  "eventId": "uuid",
  "eventType": "market-data-failover-failed",
  "exchange": "pacifica",
  "symbol": "BTC",
  "elapsedMs": 12000,
  "attempts": [
    { "channel": "http", "result": "timeout" },
    { "channel": "synth", "result": "insufficient-data" }
  ],
  "recommendedAction": "halt-trading",
  "severity": "CRITICAL"
}

4. 业务要求

  • 每个事件必须写入日志与 MonitoringEvent,供仪表盘展示。
  • market-data-failover-failed 触发,控制平面需暂停相关交易对的所有新订单,直到人工或自动恢复。
  • 完成通知需携带最新合成价格或备选数据,用于后续订单定价。