
From eBPF to Graph Databases: The Architecture Behind a Living Map of Microservices
In a massive microservices environment, answering 'what connects to what' is both fundamental and notoriously difficult. Netflix solved this by building a real-time service topology based on actual traffic, moving beyond fragmented monitoring data. This article dives deep into how Netflix integrates multiple data layers and efficiently processes large-scale graph data to empower its engineering teams.
Highly recommended for infrastructure and platform engineers in organizations where microservice complexity hinders incident response. Netflix's architecture serves as an excellent reference for those considering eBPF or graph databases to enhance distributed system visibility.
In a complex architecture with thousands of microservices, it was extremely difficult to identify service dependencies and the blast radius during production incidents. Existing metrics, logs, and tracing tools provided fragmented views, forcing engineers to manually piece together the infrastructure map under high-pressure 3 AM scenarios.
Netflix built a real-time Service Topology by integrating three complementary data sources: eBPF network flows, IPC metrics, and distributed tracing. They implemented a three-stage distributed aggregation pipeline using Apache Pekko Streams to resolve network intermediaries and utilized a high-throughput graph database to achieve sub-second query response times.
Engineers can now visually explore upstream/downstream dependencies and rapidly track failure propagation paths. Efficiency in incident investigation and architectural planning significantly improved through automated service tier verification and the ability to reconstruct historical topology states.
Trade-off
The approach balances different data source limits: eBPF lacks endpoint context, while IPC metrics and tracing can miss paths due to instrumentation gaps or sampling. Managing these three layers separately and merging them at query time introduces significant architectural complexity and storage overhead.
A technology that allows running sandboxed programs in the Linux kernel to observe and control system behavior without changing kernel source code. It is widely used for high-performance networking and observability in cloud-native environments.
A visualization of the logical and physical connections and dependencies between microservices within a distributed system. It reflects real-time runtime traffic rather than static documentation.
A fork of Akka, it is a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM with built-in backpressure handling.








