Uber Systems Design

This is an exploration of the technologies, architectures, and patterns behind Uber, detailing the evolution of its system from a Monolithic architecture to a Service-Oriented one. Key areas include their innovative use of the Google S2 Library for mapping, the transition to the DISCO/Dispatch optimization for enhanced performance, and the adoption of various technologies like Node.js for server operations. The module also delves into Uber's use of Redis for caching and queuing, the integration of Apache Kafka for seamless data streaming, and how Cassandra supports their ETA calculations, showcasing the complex technological ecosystem that powers Uber's global operations.

Section Menu

How do I use this section?

1. LESSON

Examining the Uber Architecture

This tutorial introduces Uber's journey from a Monolithic architecture to a Service-Oriented Architecture and their use of the Google S2 Library to model maps and location data. It explains how Uber has been able to improve performance by replacing their architecture with DISCO/Dispatch optimization and how they...

2. LESSON

Node.js Architecture

In this tutorial, we will explore the Node.js server, its core components, and how it is instrumental in Uber's operations. What is Node.js? Node.js is an open-source, cross-platform JavaScript runtime environment. It's asynchronous and event-based, making it a popular choice for developing server-s...

3. LESSON

Redis (Uber)

In this tutorial, we will dive into the architecture of Redis, its features, and how it contributes to the architecture of Uber. Uber uses Redis for caching and queuing. Some Redis instances are behind Twemproxy (a proxy server that allows you to reduce the number of open connections to a Redis server) a...

4. LESSON

Apache Kafka (Uber)

Objective: Understanding Apache Kafka In this enlightening tutorial, we will venture into the very core of Apache Kafka. We'll explore its architecture, key features, and how it integrates seamlessly into Uber's dynamic ecosystem. Uber and Kafka: A Continuous Connection Imagine every active Uber c...

5. LESSON

Cassandra and ETAs (Uber)

Ahoy, my beloved students! In this tutorial, we'll journey together through the fascinating world of Cassandra's architecture, how it works, and how it helps Uber do its thing. We'll also take a quick look at how ETAs are calculated. Cassandra Cassandra is a distributed database management syste...

6. LESSON

Ringpop at Uber

Exploring Ringpop: The Backbone of Uber's Scalability Setting the Stage: The Importance of Ringpop Uber operates on a massive scale, handling enormous amounts of traffic and user requests daily. The architecture behind this is no small feat, and one of the key components making it all possible is **Ringp...

7. LESSON

Riak (Uber)

Overview of Riak KV Architecture In this article, we will explore the core components and architecture of Riak KV, a highly available NoSQL database used by Uber for low-latency, high-scale data storage. Background Uber uses several data storage technologies: Schemaless - Custom MySQL stor...