DoorDash has launched a badge serving framework (BSF), a configuration-based system that decouples UI badge logic from application code. BSF allows the company to manage badges through backend configuration instead of client-side updates, enabling faster rollouts and more consistent behavior across platforms.
Badges in DoorDash are small UI indicators such as “Many in stock”, “HSA/FSA eligible”, or promotional tags that highlight product attributes or offers in the app. They help customers quickly identify key information about menu items or promotions.
Example of item-level badges shown in the DoorDash app (Source: Doordash Engineering Blog)
Previously, DoorDash’s badge logic was scattered across services and clients, requiring frontend teams to hardcode display behavior and manually configure telemetry. This approach made it difficult to scale as the use of badges expanded. BSF replaces this with a declarative YAML configuration and SDK that define badge types, use cases, and rankers to centralize badge lifecycle management.
Aruj Padbidri and Naveen Kumar, engineers at DoorDash, explain how the new framework helped the company consolidate badge-related logic:
BSF enables product teams to launch experiments with badges without waiting for app releases or client-side changes. Instead of hardcoding badge logic into client apps, teams can define badge behavior, priority, and experiments centrally. This configuration-driven approach accelerates rollouts while maintaining consistency across platforms, making it easier to experiment with new use cases.
BSF builds on DoorDash’s product knowledge graph (PKG), a metadata platform backed by CockroachDB with Kafka and Flink-based pipelines. PKG stores structured product attributes for tagging and badging, enabling BSF to ensure badge eligibility aligns with upstream data and remains consistent across consumer‑ and merchant‑facing applications. PKG acts as a centralized source of truth for item metadata, aggregating information such as inventory, dietary attributes, and merchandising data from multiple backend systems. It powers tagging and badging pipelines used across DoorDash’s catalog services and supports downstream systems with versioned datasets for consistency and auditing.
The framework abstracts badge logic using components such as badge types, use cases, and rankers. Badge types group similar logic and define priority; use cases manage how badges are fetched, hydrated, and serialized; and rankers resolve display conflicts using deterministic rules. At runtime, a badge processor loads these configurations, validates badge eligibility, and returns a unified Protobuf payload consumed by clients.
BSF architecture (Source: Doordash Engineering Blog)
[Click here to expand image above to full-size]
Each badge is linked to metadata from PKG, which classifies items based on inventory, dietary attributes, and merchandising data. This allows badges like “Many in stock” or “HSA/FSA eligible” to be served dynamically without custom logic for each badge. The framework also supports A/B testing, rollout control, and observability through configuration. Teams can define multiple visual treatments, assign experiments, and monitor telemetry. All without triggering app deployments. Instrumentation is handled by the badge SDK, standardizing logging and tracking across platforms.
According to DoorDash, BSF has enabled faster deployment of UI features such as promotional tags and inventory indicators by centralizing badge logic, configuration, and telemetry. Since its launch, all existing item‑level badges have been migrated to the new framework. New badges can be deployed in minutes rather than weeks, and product teams can experiment without requiring backend changes. DoorDash says that the unified framework has improved consistency across platforms and standardized metrics for badge impressions and quality, providing better observability and streamlining development processes.