页面或内容流由多个模块生成时,最初常按固定顺序整块拼接。产品希望模块间穿插后,组合层需要处理排序、占位、去重和失败隔离。
模块返回候选而非最终位置
每个模块输出标准候选项,包括类型、稳定标识、排序特征和渲染数据。最终位置由组合器决定,模块不能依赖“自己一定排在第三块”。
组合规则显式化
规则描述配额、间隔、优先级和冲突处理。规则版本随响应记录,便于复现某次排序结果。
局部失败
单个模块超时不应阻塞整体响应。组合器设置独立预算,使用已返回结果完成布局,并记录缺失模块。
兼容旧客户端
服务端可同时输出旧的分块结构和新的统一列表,或者通过能力字段选择协议。先让消费者理解新结构,再切换生产路径。
模块化的关键是让模块拥有内容自治,却不拥有全局位置控制权。