RSS Amplifier

Better Engineers · Jun 29, 2026

How Uber Migrated from a Monolith to 2,200 Microservices

0
Sign in to vote or save

Better Engineering · Better Engineers

12 min read · Company Architecture Teardown · Mid → Senior Engineer

Smart Notes

On a cold evening in Paris in 2008, Travis Kalanick and Garrett Camp couldn’t get a cab.

That single frustration became Uber — now the largest mobility platform in the world, operating in 70+ countries, 10,500 cities, with 130 million customers and billions of database transactions per day.

But between “two guys couldn’t get a cab” and “planet-scale ride-hailing platform” lies one of the most instructive engineering journeys ever documented: the story of how Uber shattered a monolith, built 2,200 microservices, broke those too, and then invented an entirely new architectural pattern to survive their own complexity.

This is that story.

Uber’s first version was built by contractors using the classic LAMP stack — Linux, Apache, MySQL, PHP. The code was written in Spanish. It ran on a single server. It proved the concept.

It also couldn’t handle more than a handful of concurrent users.

The core problem was concurrency. With a naive LAMP stack and no distributed coordination:

  • Two cars would be dispatched to one rider

  • One driver would be matched to two different riders simultaneously

  • The system would fall over under any real load

This wasn’t a failure — it was expected. The monolith existed to prove the idea worked. Once it did, Uber threw it away and built from scratch.

Get 30% off forever

Read the original on betterengineers.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.