体验层
面向转化与操作的端面:营销页、用户应用页、管理后台。
- /营销页面与多语言路由
- /用户工作台与任务流
- /后台运营与模型管理界面
请求生命周期
从用户动作到业务结果,以下流程概括了关键请求如何在系统中被处理。
入口层
请求从营销页、应用页或后台页面进入,并通过多语言 App Router 路由段分发。
校验与鉴权
在进入业务服务前,先完成会话解析、角色权限检查与参数 schema 校验。
业务执行
定价、订单、内容与 AI 生成模块按域执行规则,避免横向耦合。
数据与外部层
通过 Drizzle 持久化状态,并协调外部供应商调用、重试与限流。
结果反馈
前端获取确定性的成功、失败与加载状态,同时更新积分与计费结果。
设计原则
应用分层
每一层只做单一职责,保证系统在增长时仍然可预测、可维护。
面向转化与操作的端面:营销页、用户应用页、管理后台。
承载定价、订阅、内容与 AI 生成的核心业务规则。
连接认证、支付、存储与模型供应商的适配层。
通过工作区共享包统一管理持久化结构与类型访问。
多云存储
上传链路通过 provider 工厂动态选择存储后端,支持同一实例按用户切换 provider 与 bucket。
C 端上传
POST /api/v1/s3/upload
根据当前用户解析 provider + bucket 后执行上传。
Admin 上传
POST /api/v1/admin/s3/upload
后台素材与运营文件上传,复用同一 provider 解析逻辑。
Provider 工厂
apps/ship-api/src/services/upload/provider.ts
统一解析默认配置、用户覆盖与环境变量兜底。
任务队列保障
生成与供应商调用由调度器驱动的任务队列统一编排,确保吞吐可控、失败可恢复、计费副作用可幂等。
吞吐
同时约束 worker 并发与 provider 级 QPS 窗口,突发流量不会冲垮上游接口。
控制
AbortController 从队列任务透传到 submit/poll HTTP 请求,确保超时与取消具备确定性。
恢复
瞬时错误走有上限的重试与退避策略,不可恢复错误直接进入终态避免资源浪费。
财务
积分补偿依赖幂等键,避免重试和并发竞争导致重复退款。
技术栈矩阵
面向生产实践的核心栈分布图。
你可以直接复用现有基础,按业务需要扩展模块、供应商与工作流。