155 lines
4.9 KiB
Markdown
155 lines
4.9 KiB
Markdown
# SpacetimeDB + Axum + 阿里云 OSS 后端重写任务总纲
|
||
|
||
日期:`2026-04-20`
|
||
|
||
关联设计文档:
|
||
|
||
- [../docs/technical/SPACETIMEDB_AXUM_OSS_BACKEND_REWRITE_DESIGN_2026-04-20.md](../docs/technical/SPACETIMEDB_AXUM_OSS_BACKEND_REWRITE_DESIGN_2026-04-20.md)
|
||
- [../docs/technical/NODE_BACKEND_MODULE_AND_API_INDEX.md](../docs/technical/NODE_BACKEND_MODULE_AND_API_INDEX.md)
|
||
- [../docs/technical/RPG_ENTRY_RUNTIME_CHAIN_REFACTOR_EXECUTION_PLAN_2026-04-21.md](../docs/technical/RPG_ENTRY_RUNTIME_CHAIN_REFACTOR_EXECUTION_PLAN_2026-04-21.md)
|
||
- [../docs/technical/CREATION_FLOW_CHAIN_REFACTOR_EXECUTION_PLAN_2026-04-21.md](../docs/technical/CREATION_FLOW_CHAIN_REFACTOR_EXECUTION_PLAN_2026-04-21.md)
|
||
|
||
关联拆分任务:
|
||
|
||
- [01_M0_M2_FOUNDATION_AND_AUTH.md](./01_M0_M2_FOUNDATION_AND_AUTH.md)
|
||
- [02_M3_RUNTIME_PROFILE.md](./02_M3_RUNTIME_PROFILE.md)
|
||
- [03_M4_STORY_AND_GAMEPLAY.md](./03_M4_STORY_AND_GAMEPLAY.md)
|
||
- [04_M5_CUSTOM_WORLD_AND_AGENT.md](./04_M5_CUSTOM_WORLD_AND_AGENT.md)
|
||
- [05_M6_ASSETS_OSS_EDITOR.md](./05_M6_ASSETS_OSS_EDITOR.md)
|
||
- [06_M7_TEST_DEPLOY_CUTOVER.md](./06_M7_TEST_DEPLOY_CUTOVER.md)
|
||
- [07_CROSS_CUTTING_AND_ACCEPTANCE.md](./07_CROSS_CUTTING_AND_ACCEPTANCE.md)
|
||
|
||
## 0. 使用说明
|
||
|
||
这份总纲用于把控整体重写节奏,拆分文件用于落地执行。
|
||
|
||
执行原则:
|
||
|
||
1. 第一阶段优先兼容当前 `/api/*`、`/healthz`、`/generated-*` 访问习惯。
|
||
2. 不允许先删旧能力再补新能力,必须按能力面平移。
|
||
3. 以当前 Node 后端 `96` 条路由、`6` 个挂载面、`12` 个模块为最低覆盖基线。
|
||
4. 每个阶段完成后,都要形成可运行、可回归、可继续迭代的中间态。
|
||
|
||
## 1. 总体里程碑
|
||
|
||
- [x] `M0`:冻结当前后端能力清单与迁移边界
|
||
- [ ] `M1`:搭建 Rust 工作区、Axum 主入口与基础中间件
|
||
- [ ] `M2`:完成鉴权、会话、JWT、refresh cookie 主链迁移
|
||
- [ ] `M3`:完成 runtime snapshot / settings / profile 迁移
|
||
- [ ] `M4`:完成 story action 主循环与核心 gameplay reducer 迁移
|
||
- [ ] `M5`:完成 custom world / agent 主链迁移
|
||
- [ ] `M6`:完成 assets / OSS 主链迁移
|
||
- [ ] `M7`:完成联调、回归、部署与切流准备
|
||
|
||
## 2. 阶段导航
|
||
|
||
### `M0 ~ M2`
|
||
|
||
重点:
|
||
|
||
1. 冻结能力清单
|
||
2. 搭建 Rust workspace
|
||
3. 搭建 Axum 基础设施
|
||
4. 迁移鉴权、会话、JWT、refresh cookie
|
||
|
||
详见:
|
||
|
||
- [01_M0_M2_FOUNDATION_AND_AUTH.md](./01_M0_M2_FOUNDATION_AND_AUTH.md)
|
||
|
||
### `M3`
|
||
|
||
重点:
|
||
|
||
1. 迁移 runtime snapshot
|
||
2. 迁移 settings
|
||
3. 迁移 profile dashboard / browse history / save archive
|
||
|
||
详见:
|
||
|
||
- [02_M3_RUNTIME_PROFILE.md](./02_M3_RUNTIME_PROFILE.md)
|
||
|
||
### `M4`
|
||
|
||
重点:
|
||
|
||
1. 迁移 RPG runtime story 主循环
|
||
2. 迁移 RPG 入口 / session / runtime 对应的后端边界与编译职责
|
||
3. 兼容当前 story view model 与 state 恢复接口,并与 `rpgEntry / rpgSession / rpgRuntime / rpgRuntimeStory` 口径对齐
|
||
|
||
详见:
|
||
|
||
- [03_M4_STORY_AND_GAMEPLAY.md](./03_M4_STORY_AND_GAMEPLAY.md)
|
||
|
||
### `M5`
|
||
|
||
重点:
|
||
|
||
1. 迁移 RPG 创作主链:Agent session、result preview、published profile
|
||
2. 迁移 works / library / gallery / publish / enter-world 配套链路
|
||
3. 旧 `custom-world/sessions` 传统问答流只按历史兼容台账处理,不再作为当前主链扩展目标
|
||
|
||
详见:
|
||
|
||
- [04_M5_CUSTOM_WORLD_AND_AGENT.md](./04_M5_CUSTOM_WORLD_AND_AGENT.md)
|
||
|
||
### `M6`
|
||
|
||
重点:
|
||
|
||
1. 迁移 assets
|
||
2. 接入阿里云 OSS
|
||
3. 做旧静态资源路径兼容
|
||
|
||
详见:
|
||
|
||
- [05_M6_ASSETS_OSS_EDITOR.md](./05_M6_ASSETS_OSS_EDITOR.md)
|
||
|
||
### `M7`
|
||
|
||
重点:
|
||
|
||
1. 联调
|
||
2. 回归
|
||
3. 部署
|
||
4. 观测
|
||
5. 灰度切流
|
||
6. 收口 `spacetime-module` 主工程结构,拆分过大的 `src/lib.rs`
|
||
|
||
详见:
|
||
|
||
- [06_M7_TEST_DEPLOY_CUTOVER.md](./06_M7_TEST_DEPLOY_CUTOVER.md)
|
||
|
||
## 3. 横向专项
|
||
|
||
以下专项贯穿整个迁移期:
|
||
|
||
1. contract 与前端兼容
|
||
2. SpacetimeDB schema 演进治理
|
||
3. 大对象与缓存治理
|
||
4. 文档持续维护
|
||
|
||
详见:
|
||
|
||
- [07_CROSS_CUTTING_AND_ACCEPTANCE.md](./07_CROSS_CUTTING_AND_ACCEPTANCE.md)
|
||
|
||
## 4. 第一优先级建议执行顺序
|
||
|
||
1. 先做 `M0`,冻结基线,避免迁移过程中口径漂移。
|
||
2. 再做 `M1 + M2`,先把 Axum 壳与鉴权打稳。
|
||
3. 当前执行顺序允许前置 `M6` 的 OSS 基础设施与直传票据能力,为后续各阶段复用统一资产入口。
|
||
4. 再做 `M3`,优先跑通快照、设置、profile。
|
||
5. 再做 `M4`,把 story action 主循环真正迁走。
|
||
6. 然后做 `M5`,迁 custom world 与 agent。
|
||
7. 最后收口 `M6` 余下资产绑定、`M7` 部署与切流。
|
||
|
||
## 5. 最终验收清单
|
||
|
||
- [ ] 当前 `96` 条后端接口已全部迁移或有兼容替代
|
||
- [ ] 当前 `6` 个挂载面已全部迁移
|
||
- [ ] 当前 `12` 个内部模块已完成新架构落位
|
||
- [ ] Axum 已成为唯一 HTTP / SSE / 副作用边界
|
||
- [ ] SpacetimeDB 已成为唯一运行时状态真相源
|
||
- [ ] 阿里云 OSS 已成为唯一资产对象仓
|
||
- [ ] 前端主流程在不大改 UI 的前提下可跑通
|
||
- [ ] 能完成灰度切流,并保留可回退能力
|