标准答案
- 订单、权限、状态和金额等核心事实通常落在事务数据库或明确的领域服务中,并由约束和审计保护。
- 缓存保存可重建的加速副本,搜索保存可重建的检索视图,消息保存待处理事件或事件流,对象存储保存文件内容。
- 每条同步链路都要定义延迟、重复、删除、重建、权限和失败补偿,读路径要在关键决策处回到权威来源。
- 接口文档和数据字典应写明谁创建、谁修改、谁校验和谁负责恢复,避免“哪个组件有数据就信哪个”。
题目解析
先把数据分成业务事实、派生视图、待处理事件和文件内容,再决定组件。订单状态和金额通常需要事务事实来源,缓存和搜索可以重建,消息保存过程证据,对象存储保存内容。
每条同步链都要写清谁创建、谁修改、允许多大延迟、如何处理重复和删除、如何重建以及权限在哪里校验。组件之间有数据不代表它们拥有同样的权威性。
接口和数据字典应让恢复路径可执行:事实来源损坏时从哪里恢复缓存和搜索,孤儿对象如何清理,消息积压如何补偿。无法回答这些问题,系统状态就难以审计。
常见误区
- 误区:把缓存当主数据。改正:缓存必须可从明确事实来源重建,关键决策回到权威存储。
- 误区:把搜索结果直接作为授权依据。改正:搜索只定位候选对象,权限和当前状态在权威服务中校验。
- 误区:文件和数据库记录没有一致的生命周期。改正:用状态机、孤儿扫描和清理补偿管理上传、删除和恢复。