Skip to footer

Architecture

Uber’s Fulfillment Platform: Ground-up Re-architecture to Accelerate Uber’s Go/Get Strategy

Introduction to Fulfillment at Uber Uber’s mission is to help our consumers effortlessly go anywhere and get anything in thousands of cities worldwide. At its...

Containerizing Apache Hadoop Infrastructure at Uber

Introduction As Uber’s business grew, we scaled our Apache Hadoop (referred to as ‘Hadoop’ in this article) deployment to 21000+ hosts in 5 years, to...

Customer Support Automation Platform at Uber

High Level Overview of the Problem Introduction If you’ve used any online/digital service, chances are that you are familiar with what a typical customer service experience...

Elastic Distributed Training with XGBoost on Ray

Introduction Since we productionized distributed XGBoost on Apache Spark™ at Uber in 2017, XGBoost has powered a wide spectrum of machine learning (ML) use cases...

Efficient and Reliable Compute Cluster Management at Scale

Introduction Uber relies on a containerized microservice architecture. Our need for computational resources has grown significantly over the years, as a consequence of business’ growth....

Handling Flaky Unit Tests in Java

Introduction to Flaky Tests Unit testing forms the bedrock of any Continuous Integration (CI) system. It warns software engineers of bugs in newly-implemented code and...

Scaling of Uber’s API gateway

As a recap from the last article, Uber’s API Gateway provides an interface and acts as a single point of access for all of...

The Architecture of Uber’s API gateway

API gateways are an integral part of microservices architecture in recent years. An API gateway provides a single point of entry for all our...

Flipr: Making Changes Quickly and Safely at Scale

Introduction Uber’s many software systems require a high volume of changes every day. Because of our systems’ size and complexity, it is a significant challenge...

Designing Edge Gateway, Uber’s API Lifecycle Management Platform

The making of Edge Gateway, the highly-available and scalable self-serve gateway to configure, manage, and monitor APIs of every business domain at Uber. Evolution of...

Introducing Domain-Oriented Microservice Architecture

Introduction Recently there has been substantial discussion around the downsides of service oriented architectures and microservice architectures in particular. While only a few years ago,...
Apartment building

Why We Leverage Multi-tenancy in Uber’s Microservice Architecture

Multi-tenancy lets Uber tag requests coming into our microservice architecture, giving us the flexibility to route requests to specific components, such as during testing scenarios.

Engineering SQL Support on Apache Pinot at Uber

We engineered full SQL support on Apache Pinot to enable quick analysis and reporting on aggregated data, leading to improved experiences on our platform.

Uber Infrastructure in 2019: Improving Reliability, Driving Customer Satisfaction

In 2019, Uber's Infrastructure team built new services and systems to enable resource savings, efficiency gains, and greater resilience across our technology stack.

Uber’s Data Platform in 2019: Transforming Information to Intelligence

In 2019, Uber's Data Platform team leveraged data science to improve the efficiency of our infrastructure, enabling us to compute optimum datastore and hardware usage.

Productionizing Distributed XGBoost to Train Deep Tree Models with Large Data Sets at Uber

We share technical challenges and lessons learned while productionizing and scaling XGBoost to train distributed gradient boosted algorithms at Uber.

Optimizing Observability with Jaeger, M3, and XYS at Uber

Uber’s observability engineers present their work on distributed tracing (Jaeger), sampling (XYS), and metrics processing (M3).

Introducing Menu Maker: Uber Eats’ New Menu Management Tool

To simplify the Uber Eats experience for our restaurant-partners, we built Menu Maker, a web-based tool for seamlessly managing menus on the Uber Eats app.

Evolving Michelangelo Model Representation for Flexibility at Scale

To accommodate additional ML use cases, Uber evolved Michelangelo's application of the Apache Spark MLlib library for greater flexibility and extensibility.
Building the New Uber Freight App as Lists of Modular, Reusable Components

Building the New Uber Freight App as Lists of Modular, Reusable Components

We redesigned the Uber Freight app with RIBs, our open source plugin architecture, to enable quicker feature rollouts and an improved user experience.

Popular Articles