If you ask developers which product is one of the best examples of real-world system design, Uber almost always comes up. And honestly, for good reason. Uber is not just a taxi-booking app. It is a real-time distributed system that has to make thousands or even millions of decisions every minute. A rider opens the app and expects nearby drivers to appear almost instantly. A driver goes online and