NetflixNetflix Technology BlogProblem & solution
How and Why Netflix Built a Real-Time Distributed Graph: Part 3 — Querying the graph with gRPC…
Summary
Netflix designed a query execution serving layer for its Real-Time Distributed Graph to power sub-100ms responses across diverse graph traversal workloads spanning billions of nodes and edges. To prevent compounding network delays in multi-hop queries, the engine uses a breadth-first traversal model that batches entity lookups across entire frontier levels rather than tracing paths depth-first. The entire serving architecture relies on asynchronous composition across small thread pools of 16 to 24 threads, ensuring no thread blocks while waiting on remote storage or enrichment I/O. Selective caching via EVCache targets stable properties with volatility-matched TTLs, producing 70 to 80 percent cache hit rates and reducing backend storage calls by three to four times. A layered filtering hierarchy pushes depth and edge limits directly to the storage tier, eliminating bespoke code changes while isolating system resources against excessive fan-out.
Context
Netflix required a fast, flexible serving layer for its Real-Time Distributed Graph (RDG) to deliver sub-100ms query responses over billions of evolving nodes and edges. The system needed to support diverse workloads, balancing shallow, wide queries that cause massive I/O fan-out with deep, narrow multi-hop queries where sequential network hops create significant latency overhead.
Approach / What changed
The team designed the query layer around breadth-first graph traversal, batching network lookups across frontier levels rather than following sequential depth-first paths. They implemented an async-first execution pipeline across small dedicated thread pools of 16 to 24 threads total, integrated selective caching via EVCache with TTLs aligned to data volatility, and introduced a layered override system for early filtering and per-hop limits.
Takeaways
Asynchronous composition enabled the serving layer to handle thousands of concurrent requests across only 16 to 24 threads without blocking on I/O, dramatically lowering infrastructure costs.
Selective caching with EVCache matched TTLs to property volatility and skipped near-expiry nodes, achieving a 70 to 80 percent hit rate and reducing storage calls by 3 to 4 times.
Breadth-first traversal batches lookups across frontier levels, replacing sequential network call chains with bounded parallel rounds to maintain low multi-hop query latency.
Source and freshness
- Source
- netflixtechblog.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.