Skip to main content
Uber logo

Schedule rides in advance

Reserve a rideReserve a ride

Schedule rides in advance

Reserve a rideReserve a ride
Engineering

Using GraphQL to Improve Data Hydration in our Customer Care Platform and Beyond

August 28, 2019 / Global
Featured image for Using GraphQL to Improve Data Hydration in our Customer Care Platform and Beyond
Figure 1: Using a self-service flow built into the Uber app, a rider can successfully resolve a payment preference issue: all they have to do is select “Support,” click on “Switch payment method,” and select their payment method from a menu. Then, the Customer Care platform confirms that the issue has been resolved.
Figure 2: CCS uses fetchers to retrieve data and adapts data from multiple fetchers using middlewares before transferring it to our caches and microservices.
Figure 3: Callbacks require fewer call-stacks, resulting in lower latency compared to Async/Await and Promise, as depicted in the graph above. Callbacks have the lowest latency among all competitors up to 50,000 parallel calls and beyond. In some cases, the latency difference is quite significant; for example, a callback latency of 50,000 seconds is over two times faster than that of Async/Await Babel.
Figure 4: The GraphQL server interprets a query based on a predefined schema, then calls the corresponding resolver to fetch the requested data and return the response.
Figure 5: The Customer Care Platform’s new architecture queries initiated in the web-based frontend are routed to the GraphQL server, which relies on its resolvers to fetch the appropriate fields.
Figure 6: The Customer Support code generation tool automates the process of adding a new service. It reads the thrift file, then generates five files to set up the new service with the communication layer.
Figure 7: Monitoring Atreyu request errors shows when resolvers fail, letting us identify problems with how GraphQL interacts with upstream services.
Figure 8: Endpoint-level performance monitoring includes the number of errors and successes (left cluster chart), the rate of success and error (middle line graph), and the p95 of the request time (right wave graph).
Kunyao Liu

Kunyao Liu

Kunyao Liu is a software engineer on Uber's Customer Obsession team.

Posted by Kunyao Liu

Category: