Skip to main content

Real-time Engineering at Uber and the Evolution of an Event-Driven Architecture

Jeff Wolski (Uber)
Computational Thinking
Portland 255
Average rating: ****.
(4.00, 2 ratings)
Slides:   1-PDF 

Node.js allows developers to be ultra-productive at high-scale. Its libraries and inherent support for parallel I/O make service integration almost too easy and a natural choice for the primary technology behind Uber’s core services. However the same features that make it easy to use can lead to subtle complexities in the codebase and systems that can fail, and degrade in unforeseen ways.

In this talk, you’ll hear about how Uber has greatly simplified and improved the resiliency of its Node.js application by focusing on what it’s good at: application logic, integration and event sourcing. Using technologies like LinkedIn’s Kafka as its event broker and Twitter’s Storm as the glue between the event stream and its consumers we’ve increased our ability to deliver features in a robust way.

With this knowledge you’ll be empowered to avoid the perils of a monolithic codebase. We’ll show you when it’s useful to publish events, how best to document them, how to use your event transport effectively, and how to avoid coupling in your event stream. You may start to believe that hacking, having fun, and being pragmatic are not mutually exclusive with the principles of service-orientation.

Photo of Jeff Wolski

Jeff Wolski


Jeff Wolski has over 10 years of experience in tech and has worked in a variety of environments: investment banking, hospital operating rooms, broadcast television graphics, flash sale retailers and now Uber. At Uber, he spends his time hacking on Node.js, learning how to Scala, building Graphite dashboards and drinking jasmine green tea. He originally hails from New York and has recently made the trek over to San Francisco, a city which he finds amazingly beautiful.