文档
开发文档

架构与模块

单体平台、供应与产品边界、鉴权及持久恢复路径

部署边界

首期一个 Go 服务,Gin 路由、GORM 数据访问,PostgreSQL 保存权威数据,Redis 用于非权威缓存与限流。Console/Admin 两个 React 前端构建为静态资源,与服务一起发布。恢复任务先由同一服务执行;是否拆为独立 Worker 在容量验证后决定,操作状态和接管依据必须先持久化。

图片/音频供应入口待审计,不用此图推导它们已经可用。文本现有企业客户不迁入平台;平台销售价与网关采购价分别管理。

模块边界

模块责任禁止跨越的边界
identity / authorization用户、会话、角色、Key 和受限产品授权不信任 Body/Header 的用户与角色声明
pricing模型销售目录、客户方案、报价与版本快照不以供应采购价临时覆盖客户价
accounting用户余额、冻结、账务操作、流水和退款不建立产品钱包或 quota 同步副本
relay协议解析、上游调用、用量、平台客户模型任务不直连供应商,不保存产品 Project
payment人民币订单、可信通知、核对与一次入账浏览器返回不代表支付成功
administration管理操作、细分权限、审计与异常核对产品管理接口仍由产品实现
recovery原任务查询、账务重试、租约接管和待核对不因超时自动重做付费生成

以上是职责划分,不要求初始源码目录立即改成同名包。控制器负责请求解析/响应,服务负责授权后的业务流程,资金状态与流水由统一记账服务事务提交;Relay 不能绕过它写余额,Admin 也不能直接改余额列。

三条关键路径

模型调用:验证 Key 或用户委托 → 检查模型权限与价格 → 持久预留及价格快照 → 记录执行状态 → 通过 uumi/媒体网关执行 → 保存确认用量/任务结果 → 原操作结算 → 可查询使用记录。同步模型的预扣/执行如何映射操作状态必须基线审计,不能只给非模型新接口补事务。

非模型收费:验证用户会话与产品凭据 → 预留 → 通过原子状态变化确认开始 → 产品执行 → 按实际数量结算或确认未执行/明确失败后释放。产品扩大范围前先补充预留;开始回执丢失先查询,不能认为未开始。

后台恢复:扫描到期租约和持久待处理记录 → 接管原操作 → 查询原上游任务/订单 → 按原价格及归属登记事实 → 幂等结算/释放/退款 → 更新核对状态与审计。授权退出后,已发生的任务仍须正确处理;不会授予新执行权限。

故障边界

数据库是身份、授权操作和账务权威。Redis 缓存不可用不能造成资金丢失或越权;限流降级策略需明确,数据库不可用时拒绝新付费操作。外部请求不在持有用户资金行锁的长事务中执行;提交前后状态与未知结果按数据与状态恢复。

服务只通过受控接口互通,不让产品直接读写平台库,不把平台会话密钥或供应 Key 发给产品浏览器。身份和文件访问规则分别见身份及共用任务与媒体。

On this page