有效的查询仍然可能在历史上是错误的
配置查询现在可能返回有效数据,但会歪曲过去的用户体验。这种情况发生在用当前设置来解释历史行为时,导致不准确的表现。例如,某服务可能在创建时基于当时的目的地生成指令;若该目的地随后发生变更,对旧指令重新解析虽能成功,却会指向一个从未发布过的错误目的地。此类细微的缺陷可绕过异常处理和监控系统。为防止此类问题,系统应在记录创建时持久化提供给用户或系统的确切输出。该存储的快照应作为历史重构的权威来源。仅存储配置键是不够的,因为与这些键关联的值可能会发生变化。对于现有记录中尚未生成快照的情况,应使用空值来表示诚实的不确定性,而非通过回填暗示历史数据存在错误。安全的读取模型应显式处理这些空快照,必要时对遗留记录暂缓精确重显。虽然快照会重复数据并需要严格管理,但它们为用户和审计人员提供了自包含的历史记录。此模式使支持团队无需搜索日志,并确保用户看到一致的信息。测试应聚焦于可变配置与持久化历史之间的交互,验证快照是否被正确使用,以及配置变更是否会影响过往记录。在实施快照之前,应考虑:是否有人或系统已基于该输出采取行动、源值能否独立变化、重现旧输出是否至关重要,以及其不准确是否可能造成危害。