Uber¶
Uber (uber.com/blog/engineering) is the largest mobility platform in the world (70+ countries, 10,500 cities, 130M+ customers as of 2024) and, via Uber Eats, the largest food-delivery platform ex-China (45+ countries). The engineering org has generated an unusually rich body of public system-design writing — TChannel, Hyperbahn, Ringpop, Schemaless, M3, Jaeger, H3, RIBs, Cadence, Michelangelo, Hudi were all invented, deployed at scale, and open-sourced at Uber.
Tier classification¶
Tier 1 (pending direct RSS scraper — see raw/_feeds.yaml note
"Uber pending HTML scraper" in [[AGENTS.md]]). For now the wiki
reaches Uber content through secondary aggregators (High
Scalability, this companies/highscalability page, Fly.io
commentary) and through linked-from references in
Cadence, Hudi, etc.
Architectural eras (per the 2024 Josh Clemm retrospective)¶
| Era | Architecture | Primary data store |
|---|---|---|
| 2009 LAMP | Single PHP/MySQL app, source code in Spanish | MySQL |
| 2011 two-monolith | dispatch (Node.js) ↔ Object Node ↔ API (Python) | MongoDB → Redis / PostgreSQL |
| 2013 SOA | API split into ~100 Python/Tornado microservices | PostgreSQL |
| 2014 Halloween rewrite | Schemaless on MySQL; Cassandra for dispatch | MySQL (Schemaless) + Cassandra |
| 2014 dispatch split | RTAPI Node.js gateway + new dispatch with geospatial index | + systems/ringpop gossip |
| 2016+ mobile | RIBs across rider / driver / Eats / Freight | — |
| 2018 Project Ark | Consolidation: Java + Go official; Python/JS deprecated for backend; monorepo per language | — |
| 2020 Edge Gateway | Four-layer stack: Edge / Presentation / Product / Domain | — |
| 2021+ Fulfillment rewrite | NewSQL rewrite on Spanner | Spanner |
| 2023+ cloud | Crane makes 4,000+ stateless microservices cloud-portable | Google + Oracle cloud |
Key systems¶
In-house, open-sourced:
- systems/tchannel — bi-directional RPC protocol over Hyperbahn; predates Uber's gRPC adoption.
- systems/ringpop — Node.js gossip-protocol-based membership/sharding library; backbone of the 2014 dispatch rewrite.
- systems/schemaless-uber — trip data store on sharded MySQL; Bigtable-shaped sparse 3D hash map.
- systems/m3-uber — metrics platform (Grafana-fronted).
- systems/jaeger — distributed-tracing system (evolved from Uber's earlier Merckx, Zipkin-inspired).
- systems/h3-geo — hexagonal geospatial index (open-sourced to replace Google's S2 for dispatch sharding).
- systems/rib-architecture — Router-Interactor-Builder mobile architecture.
- systems/cadence — long-running workflow engine; the predecessor to Temporal.
- systems/apache-hudi — open-source table format; built at Uber for low-latency CDC data pipelines.
- systems/michelangelo — Uber's internal ML platform.
Adopted / migrated to:
- systems/google-cloud-spanner — NewSQL store powering the 2021+ Fulfillment Platform.
- systems/presto — interactive analytics on Kafka.
- systems/apache-spark — scaled up for data infrastructure.
Deprecated / archived:
- PostgreSQL (single-DB era, replaced by Schemaless-on-MySQL + Cassandra in 2014).
- Python / JavaScript on the backend (deprecated by Project Ark, 2018+; still used for mobile/web/ML).
Architectural themes (for cross-reference)¶
- concepts/service-oriented-architecture — Uber's 2013–18 microservice explosion is one of the canonical real-world examples; its reversal via platform consolidation is equally instructive.
- concepts/monolith-to-microservices — the 2013 split is a textbook case, with its own platform-tooling follow-up.
- concepts/distributed-monolith — the 2018 Project Ark framing of "thousands of microservices, 12,000 repos, 5-6 systems doing 75% the same thing" is the canonical symptom description.
- patterns/two-monolith-architecture — the 2011 dispatch + API split.
- patterns/geospatial-gossip-sharding — 2014 dispatch rewrite: S2/H3 cells as shard key over Ringpop gossip.
- patterns/layered-gateway-architecture — 2020 Edge Gateway four-tier stack.
Recent articles¶
- 2024-03-14 — A Brief History of Scaling Uber (via High Scalability; Josh Clemm / Uber Eats)
Related¶
- companies/index
- companies/highscalability — aggregator through which most Uber content reaches the wiki today.