How Does Uber Know Your Driver Moved Without You Refreshing the App?
A driver moves 200 meters and your screen updates without a refresh — the event pipeline, ordering problems, and filtering decisions behind Uber's live location tracking.
- Real System Deep Dive
- Real-Time Systems
- Event-Driven Architecture
- Distributed Systems
- System Design
Your Uber driver moves 200 meters. You don't refresh the app. Yet the car moves on your screen. A few seconds later: "Driver arriving in 4 min." Then 3. Then 2.
How does your phone know? It isn't repeatedly asking "did the driver move?" That's not how a large-scale real-time system works.

A simplified architecture looks like this:
- 🚗 The driver's phone sends location updates.
- 📍 A location service receives the update.
- ⚡ An event is published.
- 🌐 Streaming infrastructure processes the location change.
- 📡 A real-time gateway pushes the relevant update to the rider.
- 📱 The frontend updates its state — no page refresh, no full-screen API request, just a stream of state changes.
But the interesting part isn't sending the event. It's everything that happens when reality isn't perfect.
- What if the driver's phone loses connectivity?
- What if two location events arrive out of order?
- What if the rider temporarily loses their network?
- What if an event is duplicated?
- What if the frontend misses several updates?
A production system can't assume every event will arrive exactly once, in order, immediately. Instead, it needs event processing, deduplication, ordering and timestamps, connection recovery, state reconciliation, fresh snapshots, and scalable fan-out.
There's another important optimization too. A rider doesn't need the location of every driver in the city — only the ones relevant to their trip. Don't distribute every event to everyone. Filter and route events to the users who actually need them.
The deeper lesson: Real-time systems aren't built by making everything real-time. They're built by deciding what changed, who needs to know, how quickly they need to know, and what happens when the update is missed.
That's the difference between a demo that moves a marker on a map, and a production system that can do it reliably at scale.
What other real-time system should we break down next?
Keep reading
How Does Netflix Know Something Is Broken Before You Do?
Thousands of services sit behind a single "Press Play" — how Netflix connects metrics, logs, traces, and client telemetry to catch playback failures before users report them.
Why Doesn't Your Order Confirmation Wait for Everything to Finish?
Payment, inventory, fraud checks, shipping, notifications — a single "Order Confirmed" doesn't wait for all of them. How publish-subscribe events let one action fan out into independent workflows.
Why Great Systems Don't Make You Wait for Everything
Order confirmation shouldn't wait on payment, inventory, email, and analytics to all finish. How separating the critical path from everything else keeps event-driven systems responsive.