文档版本:v1.0 最后更新:2026-04-02 08:28:05
后续 backend 不应该只“管理一个 event JSON 文件”,而应该管理一整套可伸缩的配置生命周期。
这套生命周期至少要覆盖:
核心目标不是支持当前字段,而是支持以后继续加字段时,主架构不需要推翻。
当前根目录下的 event 已经保存了最小启动配置样例:
从这两个样例看,当前“最小启动配置”已经有了很好的雏形:
appmapplayfieldgame.mode这类文件很适合作为运行时 manifest 的基础形态。
但如果后续继续往里面堆:
就不能再只靠单个最终 JSON 手工维护了。
后端要稳定的是这些层:
source configbuildreleaselaunchsession而不是把所有具体配置字段都设计成强结构数据库列。
编辑态:
运行态:
客户端进入游戏时,不应直接读取编辑态对象。
客户端应该只消费:
manifest_urlmanifest_checksum_sha256只要一局启动了:
event_release_id这是编辑态配置。
建议特点:
jsonb它对应“最大启动配置”或“完整编辑配置集合”。
appbrandingmapplayfieldgamerulesscoringtimeControlcontentassetssafetytelemetryfeatureFlags这是后端根据源配置构建出来的中间结果。
建议职责:
这一层是后续做“预览构建”“草稿预览”“发布前检查”的关键。
这是正式对外运行时版本。
建议职责:
当前已有的 event_releases 就是这层的起点,但后面还需要更完整的 build / assets 支撑。
建议不要把“最小配置 / 最大配置”当成数据库对象名,而要作为两种形态理解。
就是客户端能开局所必需的最小 manifest。
建议包含:
schemaVersionreleaseIdappmapplayfieldgame特点:
就是完整编辑态 source config。
特点:
当前根目录 event 建议继续保留,但角色要明确:
它应该是:
它不应该直接承担:
线上真正的运行入口应当是:
在当前 数据模型.md 基础上,建议新增 3 张核心表。
这 3 张表的第一版 migration 已经落在:
event_config_sources用途:
建议字段:
idevent_idsource_version_nosource_kindschema_idschema_versionstatussource_jsonbnotescreated_by_user_idcreated_at说明:
source_jsonb 存完整编辑态配置schema_id + schema_version 用来做校验event_config_builds用途:
建议字段:
idevent_idsource_idbuild_nobuild_statusbuild_logmanifest_jsonbasset_index_jsonbcreated_by_user_idcreated_at说明:
manifest_jsonb 是构建后得到的运行 manifestasset_index_jsonb 是构建时收集到的资源清单event_release_assets用途:
建议字段:
idevent_release_idasset_typeasset_keyasset_pathasset_urlchecksumsize_bytesmeta_jsonb说明:
这些字段后端应强约束:
event_idrelease_idmanifest_urlmanifest_checksum_sha256statuspublished_atsession_public_idevent_release_id这些是运行链路基础,不适合做成松散字段。
这些字段建议主要放 jsonb:
这样后面新增字段时,主链路不会被迫重构。
建议支持:
建议支持:
建议支持:
manifest_url建议支持:
建议后面按这个顺序补接口:
POST /events/{id}/config-sourcesGET /events/{id}/config-sourcesGET /config-sources/{id}POST /config-sources/{id}/buildGET /builds/{id}GET /builds/{id}/manifestPOST /builds/{id}/releaseGET /releases/{id}GET /releases/{id}/assetsGET /events/{id}/preview-playPOST /builds/{id}/preview-launch当前最值得先做的不是配置后台 UI,而是配置构建器。
建议顺序:
event_config_sourcesevent_config_builds原因很简单:
后续 backend 不该做成“管理一个越来越大的 event JSON 文件”,而应该做成:
源配置管理 + 构建产物管理 + release 发布管理 + session 绑定 release
这样以后无论你配置项怎么继续长,主架构都还能撑住。