阅读时间:1 分钟
0 字
血缘、证据与执行观测
血缘回答数据和决策从哪里来,证据证明平台实际观察到了什么,执行观测用于定位调用和性能问题。三者通过统一标识关联,但保存目的和保留策略不同。
血缘类型
| 维度 | 内容 | 来源 |
|---|---|---|
| 静态血缘 | 模型属性到源字段、Function 输入输出、Action 影响范围 | 已发布模型和映射 |
| 动态血缘 | 某次请求实际读取的源、字段、计划步骤和产物 | Runtime 与连接器事件 |
| 字段级血缘 | 属性与源列、计算表达式之间的关系 | 映射和执行计划 |
| 实例级血缘 | 某实体实例由哪些源记录构成 | 运行时执行和身份映射 |
| 变更血缘 | 模型、映射、策略、数据的变更影响 | 发布和 CDC 事件 |
| 审批血缘 | 申请、规则、授权、审批决定与最终动作 | Action 状态机 |
统一标识
traceId:一次分布式调用链,可包含多个内部操作。executionId:一次可恢复的业务执行,Action 必须有,复杂异步读取可选。stepId:执行中的稳定步骤标识。attemptId:某步骤的一次具体尝试。eventId:事件去重和追踪标识。evidenceId:不可变证据对象标识。
重试产生新的 attemptId,不改变 executionId。异步消息继续传播原 traceId 或建立可关联的 trace link。
执行事件信封
所有事件至少包含事件 ID、类型、Schema 版本、发生时间、生产者、租户、主体引用、traceId、可选 executionId、模型版本、资源引用、步骤、状态和证据引用。载荷不直接包含凭据或不必要的敏感数据。
事件使用 at-least-once 投递,消费者按 eventId 去重。事件时间和接收时间分别记录,避免把延迟到达误判为执行顺序。
证据存储
PostgreSQL 保存证据索引、摘要、关联和保留策略;对象存储保存大型请求/响应、回执、签名文件或快照。对象以内容摘要校验完整性,敏感正文加密并按租户授权读取。日志不能作为唯一业务证据,证据也不保存无边界的完整日志。
源系统观测边界
连接器能证明的事实取决于源系统能力:收到 HTTP 200 只能证明响应,不一定证明后续业务处理完成;数据库更新行数只能证明语句效果,不一定证明业务流程完成。证据事件必须标明观测来源、验证方式和结果级别。
无法获得源端记录时,平台记录“请求已发送”“响应未知”或“通过后续查询核验”等准确状态。不得生成虚假的源端内部步骤。
指标与日志
核心指标包括请求量、错误率、延迟、查询扫描量、计划拒绝、连接器健康、Action 各状态停留时间、重试、未知结果、Outbox 堆积、事件延迟和证据写入失败。日志使用结构化字段并传播租户、服务、traceId、executionId,但不记录令牌、连接串和敏感属性原值。