Skip to main content
Uber logo

Schedule rides in advance

Reserve a rideReserve a ride

Schedule rides in advance

Reserve a rideReserve a ride
Mobile, Engineering

Engineering Failover Handling in Uber’s Mobile Networking Infrastructure

July 14, 2020 / Global
Featured image for Engineering Failover Handling in Uber’s Mobile Networking Infrastructure
Figure 1. Uber’s edge infrastructure powers our mobile applications by routing mobile traffic either over the cloud infrastructure or directly to Uber’s managed data-centers.
Figure 2. Our failover handler is designed as a Finite State Machine that operates in four states: Primary, Failover, Backup, and Recovery. Primary and Backup states ensure stable operation where traffic is routed to primary and backup domains respectively while Failover and Recovery states ensure reliable transition across these two states.
Figure 3: When a rider or driver on the Uber platform enters an elevator or tunnel, the network may cut off for a few seconds. In such scenarios, our failover handler strives to avoid switching unnecessarily to a back-up domain that could potentially cause higher latencies once the network recovers.
Figure 4: When the primary domain becomes unavailable, the failover state machine switches traffic to backup domains to ensure availability of service.
Figure 5: When the cloud infrastructure (primary domain) recovers after a period of unavailability due to an outage, our failover handler’s Failover State Machine probes the primary domain and moves traffic back over if it has recovered.
Fig 1a: Graph showing distribution of requests between primary domain and backup domain using different failover strategies.
Fig1b: Graph showing percentage reduction in latencies across different apps by using new failover mechanism
Fig 2: Graph showing percentage increase in QUIC coverage by using new failover mechanism across different apps
Fig 3: Graph compares the number of failover events per user session based on different networking conditions
Sivabalan Narayanan

Sivabalan Narayanan

Sivabalan Narayanan is a senior software engineer on Uber’s Core Infrastructure team.

Rajesh Mahindra

Rajesh Mahindra

Rajesh Mahindra is a senior software engineer on Uber's Infrastructure Connectivity team.

Christopher Francis

Christopher Francis

Christopher Francis is a senior software engineer on the Uber Eats Mobile Platform team.

Posted by Sivabalan Narayanan, Rajesh Mahindra, Christopher Francis