
DoorDash 推出了一个徽章服务框架(badge serving framework,BSF),这是一个基于配置的系统,它将用户界面 Badge 徽章逻辑与应用程序代码解耦。BSF 允许公司通过后端配置而不是客户端更新来管理 Badge 徽章,从而实现更快的部署和更一致的跨平台行为。
DoorDash 中的 Badge 徽章是小型用户界面指示器,例如“库存充足”、“符合 HSA/FSA 标准”或突出显示应用程序中产品属性或优惠的促销标签。它们帮助客户快速识别菜单项或促销活动的关键信息。

DoorDash 应用程序中显示的项目级 Badge 徽章示例(来源:Doordash工程博客)
以前,DoorDash 的 Badge 徽章逻辑分散在服务和客户端中,需要前端团队硬编码显示行为并手动配置遥测。这种方法随着徽章使用的扩大而难以扩展。BSF 用声明性的 YAML 配置和 SDK 取代了这种方法,定义了徽章类型、用例和排名器,以集中管理徽章生命周期。
DoorDash 的工程师Aruj Padbidri和Naveen Kumar解释了新框架如何帮助公司整合与徽章相关的逻辑:
BSF 使产品团队能够在不等待应用程序发布或客户端更改的情况下启动徽章实验。团队可以集中定义徽章行为、优先级和实验,而不是将徽章逻辑硬编码到客户端应用程序中。这种配置驱动的方法在保持跨平台一致性的同时加快了部署,使其更容易试验新的用例。
BSF 建立在 DoorDash 的产品知识图谱(PKG)之上,PKG 是一个由CockroachDB支持的元数据平台,具有基于Kafka和Flink的管道。PKG 存储用于标记和徽章的结构化产品属性,使 BSF 能够确保徽章资格与上游数据保持一致,并在面向消费者和商家的应用程序中保持一致。PKG 作为项目元数据的中心化数据源,聚合了来自多个后端系统的信息,如库存、饮食属性和商品销售数据。它为 DoorDash 类目服务中使用的标记和徽章管道提供了支持,并为下游系统提供了版本化数据集,以确保一致性和审计。
该框架使用徽章类型、用例和排名器等组件抽象徽章逻辑。徽章类型对类似逻辑进行分组并定义优先级;用例管理徽章的获取、水合和序列化;排名器使用确定性规则解决显示冲突。在运行时,徽章处理器加载这些配置,验证徽章资格,并返回客户端使用统一的Protobuf有效载荷。

BSF 架构(来源:Doordash工程博客)
[点击此处将图片放大至原尺寸]
每个徽章都与 PKG 的元数据相关联,PKG 根据库存、饮食属性和商品销售数据对项目进行分类。这允许像“库存充足”或“符合 HSA/FSA”这样的徽章在没有每个徽章的自定义逻辑的情况下动态提供。该框架还支持 A/B 测试、推出控制和通过配置的可观测性。团队可以定义多种视觉处理方式,分配实验,并监控遥测。所有这些都不会触发应用程序部署。徽章 SDK 负责处理插桩,标准化了跨平台的日志记录和跟踪。
根据 DoorDash 的说法,BSF 通过集中徽章逻辑、配置和遥测,实现了促销标签和库存指示器等 UI 功能的更快部署。自推出以来,所有现有的项目级徽章都已迁移到新框架。新徽章可以在几分钟而不是几周内部署,产品团队可以在不需要后端更改的情况下进行实验。DoorDash 表示,统一的框架提高了跨平台的一致性,并标准化了徽章印象和质量指标,提供了更好的可观测性,并简化了开发流程。
原文链接:
https://www.infoq.com/news/2025/08/doordash-badge-framework/
评论