熔断机制:可随时关闭数据上报通道
假设某天总部发现某家分店的数据上报通道出了问题,不需要派人去店里操作——直接在总部后台把那个通道关掉,分钟级生效。前台大屏的上报和会员系统后台的上报可以独立关闭,互不影响。
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):如果这个配置不存在或格式错误,水槽保持开启——就像总部联系不上分店时,分店默认继续营业,而不是直接关门。数据管道出问题最坏是多记了点数据;但如果因配置格式错误就静默丢弃所有事件,产品团队会完全看不见用户行为,更危险。