熔断机制:可随时关闭数据上报通道

假设某天总部发现某家分店的数据上报通道出了问题,不需要派人去店里操作——直接在总部后台把那个通道关掉,分钟级生效。前台大屏的上报和会员系统后台的上报可以独立关闭,互不影响。

Claude Code 也有这个"总部远程关闸"的能力。从代码上看,src/services/analytics/sinkKillswitch.ts 通过读取一个远程配置来决定每个后端是否开启:

// src/services/analytics/sinkKillswitch.ts
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'  // 混淆后的配置键名

export function isSinkKilled(sink: SinkName): boolean {
  const config = getDynamicConfig_CACHED_MAY_BE_STALE<
    Partial<Record<SinkName, boolean>>
  >(SINK_KILLSWITCH_CONFIG_NAME, {})
  return config?.[sink] === true
}

tengu_frond_boric 是故意混淆的键名("tengu"是 Claude Code 的内部代号),整个名字看起来像无意义的词组,防止外部人知道这个键名后尝试触发。水槽配置结构是 { datadog?: boolean, firstParty?: boolean },两个后端可以独立关掉,互不影响。

失败开放(fail-open):如果这个配置不存在或格式错误,水槽保持开启——就像总部联系不上分店时,分店默认继续营业,而不是直接关门。数据管道出问题最坏是多记了点数据;但如果因配置格式错误就静默丢弃所有事件,产品团队会完全看不见用户行为,更危险。