接口返回成功,不等于业务发生过
请求发出、平台接受、用户完成、仍然留存是四件事。把它们压成一个「成功」,写入链路就会安静地错下去。
更新于 2026-10-301 分钟阅读
一次跨境私域承接的上线,连续四天跑了 397 条旅程:发出 287 次邀请,158 人真的进了群,几天后还有 145 人留在群里。这四个数是四件事,由系统的不同部位分别记下来。四个数都拿得出的团队能运营它;只有一个数的团队连故障都描述不了,因为所有故障看起来都一样——调用返回了。
四段事实,四个落盘位置
第一段是请求发出,证明代码执行了、意图产生了,落在带请求 ID 与时间的出站日志里,归你的服务负责。第二段是平台接受,证明外部系统认了这次请求,落在平台返回的 ID 与状态里,归接入层负责。第三段是用户完成,证明那个人真的做了动作,落在成员事件或任务记录里,归业务负责人。第四段是仍然留存,证明这件事经过时间还在,落在每天的成员快照里,归业务负责人和分析岗共同负责。
| 事实 | 它证明什么 | 落在哪 | 谁负责 | 失败长什么样 |
|---|---|---|---|---|
| 请求发出 | 代码跑了,意图产生了 | 出站日志,带请求 ID 与时间 | 你的服务 | 重试风暴、重复发送 |
| 平台接受 | 外部系统认了 | 平台返回 ID 与状态 | 接入层 | 接受了,从未执行 |
| 用户完成 | 人真的做了动作 | 成员事件或任务记录 | 业务负责人 | 邀请被接受,从未变成入群 |
| 仍然留存 | 时间过去它还在 | 每日成员快照 | 业务负责人与分析岗 | 入群数悄悄衰减 |
第二段和第三段之间的缺口通常最大,也最不容易被看见。上面那次运行里,287 次邀请中平台接受了 228 次,另有 59 次因为好友关系已失效而根本没发出去,系统也没有自动重试。「接受」和「发出」当时挤在看板的同一个格子里,那个格子对 59 个人来说是错的,而且全程没有报错。
超时不等于没发生
把一个人拉进群是非幂等副作用。请求超时、进程非零退出,邀请都可能已经发生了。盲目重试会造成重复或触发风控,不重试就把人晾在那里。诚实的状态是第三种:等待结果,先把意图写进库,再用成员事件和群快照回读,把事实补全。
三条规则,第一条最便宜也最常被跳过:
- 先写意图,再发请求。成功之后才写的记录,描述不了失败。
- 用观察定结果,不用返回码定结果。返回码说的是平台说了什么,不是发生了什么。
- 对账属于写链路,不是另开一张时间表跑的分析任务。
代价最高的错误,是拿错了计数器去做兜底。有一个版本设定重试若干次后自动暂停账号,但它数的是重试次数,不是不同客户,于是一个卡住的请求就可能暂停一个健康账号,把故障半径放大。正确的修法是删掉这个功能,不是调阈值。任何自动刹车上线之前,先问它数的是什么、罚的是谁。
看板要盯的四个数
每天四个数:发出、接受、完成、留存,再加一个没人解释得清的缺口。没人认领的缺口是事故,不是四舍五入。
拆解才让漏斗诚实。没进邀请阶段的 110 人里,99 次是有意拦截(跨系统去重、已经在群里),11 次是真正的资格查询失败。不拆,漏斗看上去就是掉了 28%,没人知道该修代码还是修规则;拆完,要查的只有 11 件事。
还有对照组。同一段时间里走人工路径的 110 人,入群率 9.1%,中位数 164.84 分钟;自动路径是 55.1% 和 13.88 分钟。作者自己写明这不是随机分组,对照样本只有 10 个人。这句话不是文章的弱点,它是证据和口号之间的那条线。
接受得快,不等于扛得住
一家头部券商的可观测项目:开盘流量是平时的 2–5 倍。POC 过了,生产没过,卡在数据流稳定性、指标延迟和告警延迟三处。两周出了三个版本,每一版对应一个不同的底层问题,同时给客户算了一份「能不能扛 20 倍流量」的余量。POC 期间平台收得下请求,从来没有为早上九点半做过证。
下一套写链路,先填这四行
每条写入路径填四行:事实、落盘位置、负责人、失败特征。两段事实挤在同一个格子里——通常那一格写着「成功」——你手上就只有一段事实加一份指望。
再补一句:说出一件即使接口返回 200 也仍然算失败的事。团队里没人能不查就答上来,口径表很可能在数请求,而业务在数人。缺口真的出现时,升级路径要能说清缺的是四段里的哪一段,而不是只说「出故障了」。同样的纪律也适用于数据本身,所以写入链路本来就该放进安全边界的讨论里,而不是等它出事之后再补。
来源与延伸阅读
- 生财有术社区公开分享(大铭《AI 时代的 FDE:一个真实生产项目的四周复盘》)——四段事实与生产数字转述自该文,数字为分享者自述
- 《FDE 现场工程手册》 — CC BY-SA 4.0;S1–S4 证据分层取自该手册,本节为改写与评注,改编部分同样以 CC BY-SA 4.0 提供
- 司徒K《FDE 百问百答》(2026-10-26 公开长文)——Q91–Q96 的问题结构,答案重写
本文为 FDE 百科的原创分析。源自他处的框架与案例材料已在下方标注出处。