← All sources
FOLLOWING / uber.com

Uber Engineering

Backend architecture, data systems, large migrations

2 articles in your libraryVisit blog ↗
01
Uber EngineeringUNREAD

Uber’s Real-Time Push Platform

Uber replaced mobile app polling—which reached 80% of gateway traffic—with RAMEN, a server-push platform built on Server-Sent Events plus a custom sequence-number/acknowledgment protocol for at-least-once delivery. Scaling forced a rewrite from Node.js with Ringpop gossip sharding to Netty with ZooKeeper/Helix, reaching 1.5M concurrent connections and 250K messages/sec. A newer gRPC bidirectional streaming version addresses delayed acks, unidirectional transport, and text-only payload limits.

02
Uber EngineeringUNREAD

Service-Oriented Architecture: Scaling the Uber Engineering Codebase As We Grow

Uber recounts migrating from a monolithic codebase to a microservices SOA (500+ services) to handle rapid growth, which solved coupling and deployment problems but introduced issues of obviousness, safety, and resilience. They adopted Apache Thrift for strict cross-language service contracts and built client-publishing tooling, drawing on Netflix Hystrix and Twitter Finagle for fault tolerance. Tradeoffs include immature Thrift tooling for Python and Node, and no header support complicating authentication and tracing.