The simple path first
Request the ride
The rider opens the app and asks for a trip from A to B.
Find nearby supply
The platform looks at driver position, availability, and direction.
Confirm the trip
Pricing, acceptance, and route expectations are settled quickly.
Track the trip
The ride stays live until pickup, drop-off, and receipt are all complete.
What happens after the tap
Matching is a live state machine
Why the order matters
Uber has to keep the rider app, driver app, dispatch logic, ETA, and pricing in sync. The important part is not just matching once, but keeping the trip state accurate while people move.
What the main layers are doing
Matching
What it is: The part that pairs a rider request with a driver.
How it is used: Uber uses location, availability, demand, and acceptance rules to decide the best match.
Why it fits: The right system here is a marketplace matcher, not a simple queue.
ETA and pricing
What it is: The estimate layer that keeps the trip understandable.
How it is used: It turns distance, traffic, and demand into a price and arrival time the user can act on.
Why it fits: A ride app without ETA feels blind.
Trip state
What it is: The lifecycle of pickup, en route, and completion.
How it is used: Uber keeps the trip model moving so both sides know what stage they are in.
Why it fits: State is the product here because timing changes every part of the experience.
Location updates
What it is: Constant position refresh from both apps.
How it is used: The system uses movement signals to keep route, driver, and rider views aligned.
Why it fits: If the location lags, the whole ride feels broken.