← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Uber Automates Service Mesh Dependency Analysis for Failure Propagation

🔄 Updated 21d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • Automated dependency mapping and failure classification.
  • Uses RPC middleware for caller/callee failure correlation.
  • Classifies dependencies as fail-close, fail-open, or unknown.
  • Addresses limitations of traditional distributed tracing for rare failures.

Automated Dependency Mapping

Uber has implemented an automated system to analyze service dependencies and understand how failures propagate across its service mesh. This system utilizes RPC middleware to correlate failures between callers and callees during production requests. It classifies dependencies into three categories: fail-close (failure consistently causes caller failure), fail-open (failure does not cause caller failure), or unknown (insufficient evidence).

Addressing Microservices Complexity

In a microservices architecture with thousands of services, identifying the root cause of a request failure can be complex due to deeply nested and asynchronous service calls. Uber's new approach helps to quickly pinpoint which dependency contributed to a failure, providing faster feedback than traditional distributed tracing methods, especially for rare failure events.

Limitations of Distributed Tracing

Uber initially considered distributed tracing but found its sampling rate too slow for diagnosing infrequent failures. With over 99.9% of requests completing without errors, a 0.01% sampling rate meant capturing a rare erroneous request could take several hours. The new system prioritizes faster dependency analysis over individual request visibility for these scenarios.

Implementation Details

The analysis is integrated into YARPC, Uber's RPC framework for Go and Java, through inbound and outbound middleware. This allows for precise dependency correlation by generating request IDs and correlating them across service calls. While Uber's Muttley proxy handles service-to-service requests, it lacked the necessary caller endpoint context, leading to the RPC framework integration.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~4 min · 3 stories · Nov 07

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Primary sources

GitHub yarpc/yarpc-go

Reporting from

Uber developed an automated system to map service dependencies and classify failure propagation within its service mesh. This system uses RPC middleware to correlate caller and callee failures, identifying dependencies as fail-close, fail-open, or unknown, which helps engineers quickly diagnose the root cause of request failures in a microservices environment.