Interesting article by Matt Ranney, Chief Systems Architect at Uber which gives an overview of their dispatch system for matching drivers and riders.
He outlines the architectural principles that underpin the implementation, which gives an view how they approached the problem. You can find the article in the link below.
Very interesting approach to data center failure:
“Uber’s approach to data center failure is ingenious. No data is replicated across data centers, as that puts a lot of constraints on availability and consistency. Uber uses the driver’s phones to distribute the data. Given that the driver’s phones post location updates to the server every four seconds, the server periodically replies with an encrypted state digest. If a data center fails the driver will contact a new data center to post a location update. The new data center doesn’t know anything about this particular driver so it asks for the state digest and picks up from there.”