---
title: "Halving the Time: How Uber Eats Rebuilt Its Search Pipeline"
description: "Uber Eats rebuilt its search pipeline after accumulated architectural decisions made latency increasingly costly across retrieval, hydration, ranking, ads, and presentation. The team changed its primary metric from backend API response time to Above-the-Fold completion, then introduced paginated responses with server-side caching and concurrent template rendering; these changes improved ATF by over 200 milliseconds. Other work removed low-yield retrieval strategies, grouped items by product identity to reduce lookups by over 100 times, split ranking and presentation hydration, eliminated false DAG dependencies, added request hedging, and redesigned ad data as column-oriented in memory. The combined effort cut search latency in half, including approximately 120 milliseconds from retrieval, 100-plus from hydration changes, and 130 from ads, while planned product-based search, zero-pass ranking, and streaming target further gains."
---

# Halving the Time: How Uber Eats Rebuilt Its Search Pipeline

[Uber](https://yomu.fyi/company/uber) · Sep 10, 2026

**Type:** Problem & solution

## Summary

Uber Eats rebuilt its search pipeline after accumulated architectural decisions made latency increasingly costly across retrieval, hydration, ranking, ads, and presentation. The team changed its primary metric from backend API response time to Above-the-Fold completion, then introduced paginated responses with server-side caching and concurrent template rendering; these changes improved ATF by over 200 milliseconds. Other work removed low-yield retrieval strategies, grouped items by product identity to reduce lookups by over 100 times, split ranking and presentation hydration, eliminated false DAG dependencies, added request hedging, and redesigned ad data as column-oriented in memory. The combined effort cut search latency in half, including approximately 120 milliseconds from retrieval, 100-plus from hydration changes, and 130 from ads, while planned product-based search, zero-pass ranking, and streaming target further gains.

## Context

Uber Eats search latency had become untenable as its multi-stage pipeline performed extensive candidate retrieval, full hydration, ads scoring, and ranking. Monolithic phases, unnecessary data dependencies, broad-recall retrieval paths, and serialized presentation work compounded latency across the stack.

## Approach / What changed

The work optimized the full search path by measuring Above-the-Fold completion, paginating and caching results, rendering templates concurrently, removing low-yield retrieval paths, grouping items by product identity, splitting ranking and presentation hydration, parallelizing independent stages, hedging slow requests, and redesigning ads data layout and storage.

## Takeaways

- Above-the-Fold completion replaced back-end API response time as the primary latency metric, capturing payload transfer, template rendering, and image loading through the first rendered screen.
- Splitting hydration into ranking signals and presentation attributes allowed ranking to start earlier and reduced end-to-end latency by more than 100 milliseconds.
- Column-oriented ad data, application-memory access, and removal of redundant serialization reduced ads-related latency by approximately 130 milliseconds.

**Tags:** [Caching](https://yomu.fyi/topic/caching), [Latency](https://yomu.fyi/topic/latency), [Search](https://yomu.fyi/topic/search)

- Source: [Uber](https://www.uber.com/us/en/blog/uber-eats-search-pipeline)
- Source URL: https://www.uber.com/us/en/blog/uber-eats-search-pipeline
- Ingested by Yomu: 2026-09-11T08:01:31.816Z

[Read original post](https://www.uber.com/us/en/blog/uber-eats-search-pipeline)
