subscription_changed:从拥有边界到可信查询
将 subscription_changed 视为持久的分析合约:所有者发出一个记录的谷物,一个固定装置证明字段,并且经过审查的查询回答所述问题。
- 1
结果成为最终结果
Billing service after provider reconciliation emits only after the application commits the effective subscription state and movement amount.
- 2
合同是有约束力的
8 required fields preserve the declared grain: One committed recurring-revenue movement per account, subscription, and effective change.
- 3
夹具已验证
检查类型、UTC 时间、替代结果、幂等性以及每个假名或评论分类字段。
- 4
问题得到解答
有多少经常性收入是新的、扩大的、收缩的、流失的或重新激活的?
谷物
每个帐户、订阅和有效变更的一项承诺经常性收入变动。
业主
提供商核对后的计费服务
何时发出
应用程序提交有效订阅状态和移动金额后。
现场合同
具有明确隐私边界的类型化字段
在生产查询依赖现有字段名称和类型后,保持现有字段名称和类型稳定。可选上下文应受到特定决策的限制、记录和证明。
| 字段 | 类型 | 必填 | 隐私 | 含义 |
|---|---|---|---|---|
| timestamp_utc | timestamp | yes | non-sensitive | 结果边界处的 UTC 时间。 |
| event_id | string | yes | non-sensitive | 用于重复数据删除的稳定唯一标识符。 |
| release | string | yes | non-sensitive | 发出事件的应用程序或服务版本。 |
| account_id | string | yes | pseudonymous | 稳定的内部帐户标识符,绝不是电子邮件或姓名。 |
| subscription_id | string | yes | pseudonymous | 稳定的内部订阅标识符。 |
| movement_type | string | yes | non-sensitive | 新增、扩张、收缩、流失或重新激活。 |
| plan_before | string | no | non-sensitive | 有效变更前的常态化计划。 |
| plan_after | string | no | non-sensitive | 常态化计划变更后有效。 |
| mrr_delta_usd | number | yes | non-sensitive | 签署了以美元计的每月经常性收入变动。 |
| effective_at | timestamp | yes | non-sensitive | 计费更改生效的 UTC 时间。 |
合成 JSON 事件
{
"timestamp_utc": "2026-07-29T10:20:00Z",
"event_id": "evt_subscription_01",
"account_id": "acct_8f31",
"release": "2026.07.3",
"subscription_id": "sub_41aa",
"movement_type": "expansion",
"plan_before": "starter",
"plan_after": "business",
"mrr_delta_usd": 84,
"effective_at": "2026-07-29T10:19:55Z"
}隐私审查
摄取前检查标识符
此示例使用合成标识符。假名值仍然可以是个人数据,并且审核字段可以公开业务或提供商上下文。应用您自己的同意、保留、访问、居住和删除要求。
account_id: pseudonymoussubscription_id: pseudonymous
验证清单
在构建仪表板之前证明合同
- Send one known subscription_changed fixture after the documented outcome boundary.
- Verify all 8 required fields arrive with the documented types.
- 重试相同的事件标识符并确认所选的重复数据删除行为。
- 当工作流支持时,发送受控失败或替代结果。
- 在固定窗口上运行相关 SQL 并将结果与固定装置进行协调。
常见错误
保持一行等于一个持久结果
- Emitting subscription_changed before billing service after provider reconciliation knows the final outcome.
- 在一张表中混合多种谷物,这使得计数和比率不明确。
- 用原始 URL、有效负载、提示或错误文本替换受控类别。
- 保存查询和仪表板依赖于它后就地更改字段类型。
- 添加标识符,无需记录调查、访问和保留需求。
使用合同
查询并操作事件
相关合同
在生产流量之前发送夹具
创建免费的 API 密钥、发送合成事件并在连接实时工作流程之前检查推断表。