  Uber's business is highly real-time in nature. PBs of data is continuously
being collected from the end users such as Uber drivers, riders, restaurants,
eaters and so on everyday. There is a lot of valuable information to be
processed and many decisions must be made in seconds for a variety of use cases
such as customer incentives, fraud detection, machine learning model
prediction. In addition, there is an increasing need to expose this ability to
different user categories, including engineers, data scientists, executives and
operations personnel which adds to the complexity. In this paper, we present
the overall architecture of the real-time data infrastructure and identify
three scaling challenges that we need to continuously address for each
component in the architecture. At Uber, we heavily rely on open source
technologies for the key areas of the infrastructure. On top of those
open-source software, we add significant improvements and customizations to
make the open-source solutions fit in Uber's environment and bridge the gaps to
meet Uber's unique scale and requirements. We then highlight several important
use cases and show their real-time solutions and tradeoffs. Finally, we reflect
on the lessons we learned as we built, operated and scaled these systems.
