feat(v2.4): 完成领域主写迁移
This commit is contained in:
@@ -557,3 +557,24 @@
|
||||
- 同步失败只记录日志,不阻塞 AppData 保存。慢 API 和慢 Prisma 查询先通过日志监控,后续再接 Prometheus/Grafana。
|
||||
|
||||
**理由**:这是从 AppData 兼容写入平滑过渡到领域 CRUD 的中间层。用户保存不能因为派生关系表暂时失败而丢失业务数据;同时,关系表保持跟随更新后,V2.2 快读路径才能真正承受大数据量。把同步服务独立出来,也能让后续领域 CRUD 逐步替换 AppData 时复用同一套映射和小宝 dirty 策略。
|
||||
|
||||
## 44. V2.4 领域 CRUD 成为主写入路径,AppData 退为兼容兜底
|
||||
|
||||
**问题**:V2.2/V2.3 让高增长页面优先读关系表,但前端主写仍长期停留在 AppData 时,会形成“AppData 写入 + 关系表同步”的双层事实链。数据量继续增长后,需求池分页搜索、版本详情、与我相关和小宝预警仍会受 AppData 同步时效、整文档写入和双源理解成本影响。
|
||||
|
||||
**决策**:
|
||||
- V2.4.0 先统一共享状态契约,避免领域 API 切换时把旧状态机重新带回系统。
|
||||
- V2.4.1-V2.4.4 将 Product、Project、Version、Requirement、VersionPlan、DevTask、TestCase、Bug 切为领域 API 主写。
|
||||
- V2.4.5 将 Member、TaskCategory、TaskWorklog、OvertimeRecord、WorkActivity 切为领域 API 主写。
|
||||
- 需求池列表/search/filter/sort 走服务端分页,避免加载全量 AppData 文档。
|
||||
- 版本详情实体按 `versionId` 分区键写入;Requirement 按 `productId` 分区键写入;追加型证据表保留追加语义,不从 AppData 快照反向删除历史。
|
||||
- `/workspace` 和 `/xiaobao-warning` 继续走关系表聚合/快读。领域写成功后通过工作活动和小宝 dirty 标记维持证据链。
|
||||
- AppData 保留为兼容读取、失败回退、历史迁移和少量配置承载,不再作为已迁移领域的事实源。
|
||||
- 成员迁移采用保守边界:`users` 存成员身份字段;部门、角色、密码规则暂不在本阶段发明完整 RBAC 表,仍作为 AppData 兼容配置。
|
||||
- 加班原因同样暂留 AppData 配置;加班记录本身写 `overtime_records`。
|
||||
|
||||
**理由**:
|
||||
- 领域 CRUD 直接写关系表后,读写路径对齐,分页、筛选、聚合和风险预警不再依赖 AppData 同步是否及时。
|
||||
- 分区键进入每次领域写入,能维持 V2.2 分区表设计的查询边界。
|
||||
- AppData fallback 让迁移可回滚、可兼容旧数据,但不再制造长期双事实源。
|
||||
- RBAC/配置表会影响权限模型和管理流程,单独成阶段更安全;V2.4.5 只收口当前高频业务写入,避免为了“全收口”临时设计不稳的权限 schema。
|
||||
|
||||
Reference in New Issue
Block a user