Orisumi

Identity

何时沿用实体、何时形成新版本、何时新建实体

形成一个版本前,写入方要先回答两个问题:这是不是已有的实体?这是不是已保存的版本?下表是常见情况的答案。

情况EntityIdVersionId
重试或重放已提交的版本沿用沿用
按业务规则认出已有实体,内容有变化沿用新建
补全或纠正同一件事实沿用新建
新的独立观测新建新建
另一个 Observer 确认、否定或陈述新建新建
同一个 Observer 重新处理新建新建

共同规则

IDENTITY-1 业务规则定身份

执行方:写入方、后端

业务规则决定什么算同一个实体。写入方认出已有实体时,沿用原来的 EntityId 形成新版本,否则生成新的 EntityId。后端按写入方给出的 EntityId 保存。

IDENTITY-2 身份与 Observer 无关

执行方:写入方

业务实体的身份由业务规则决定,与形成它的 Observer 是谁无关。同一个 Observer 可以形成很多业务实体,多个 Observer 也可以观测同一个业务实体。

Observation

IDENTITY-3 独立观测,新建实体

执行方:写入方

新的独立观测使用新的 EntityId。另一个 Observer 的确认、否定或陈述,以及同一个 Observer 的重新处理,都形成新的 Observation。

IDENTITY-4 补全纠正,出新版本

执行方:写入方

补全或纠正同一件事实时,形成原 Observation 的新版本。例如前台时段随每次确认延长,或者纠正填错的时区;从时间点补全为时段,也是这种情况。补全不得把几次独立的读数合并为同一份 Observation。

IDENTITY-5 重试沿用 VersionId

执行方:写入方

重试或重放已提交的版本时,沿用原来的 VersionId,内容、引用和 Observer 也保持原样。后端怎样处理重复提交,见 VERSION-7。

观测内容

IDENTITY-6 内容的粒度

执行方:写入方

观测内容的粒度由业务规则决定:内容变化时,是形成内容实体的新版本,还是新建一个实体。

IDENTITY-7 不补造身份

执行方:写入方

来源缺少稳定标识时,写入方按已有证据识别实体,不得补造来源身份;证据不足以确定的字段保持未知。作用范围不同的同名标识属于不同的实体,例如两台设备上同名的应用。

贡献者

页面历史