Overview
Uber's Real-Time Push Platform focuses on enhancing user experiences by transitioning from polling to a gRPC-based bi-directional streaming protocol. This article details the challenges faced with polling, the evolution of the push infrastructure, and the implementation of the RAMEN protocol for real-time messaging.
What You'll Learn
1
How to transition from polling to a push messaging system
2
Why real-time updates are critical in multi-sided marketplaces
3
How to implement the RAMEN protocol for efficient message delivery
Prerequisites & Requirements
- Understanding of real-time systems and messaging protocols
- Familiarity with gRPC and its implementation(optional)
Key Questions Answered
What are the challenges associated with polling in mobile apps?
Polling can lead to excessive server load, battery drain, and network congestion, particularly in low connectivity areas. As the number of features grows, the complexity of maintaining efficient polling increases, leading to performance issues and degraded user experience.
How does the RAMEN protocol improve message delivery?
The RAMEN protocol eliminates polling by allowing the server to push messages to clients in real-time, improving responsiveness and reducing server load. It also incorporates reliability features such as message acknowledgments and retries, ensuring that critical updates are delivered promptly.
What technologies are used in Uber's push messaging system?
Uber's push messaging system utilizes technologies like gRPC for efficient communication, Apache ZooKeeper for centralized management, and Redis and Apache Cassandra for data storage and replication. These technologies enable high scalability and reliability in message delivery.
What is the significance of message prioritization in the RAMEN protocol?
Message prioritization in the RAMEN protocol ensures that critical updates are sent first, enhancing user experience. High-priority messages are retried more reliably, while lower-priority messages can be deferred, optimizing data transfer and network usage.
Key Statistics & Figures
Concurrent streaming connections
600,000
This was the peak number of concurrent connections maintained by the system.
Push messages per second
70,000
This was the peak rate of push messages delivered by the system.
Server-side reliability
99.99%
This reflects the reliability achieved by the infrastructure over time.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Backend
Grpc
Used for implementing the new RAMEN protocol for efficient communication.
Backend
Apache Zookeeper
Used for centralized management and coordination of distributed systems.
Database
Redis
Used as a caching layer to improve performance.
Database
Apache Cassandra
Used for durable and cross-region replicated storage.
Backend
Node.js
Used for the initial implementation of the RAMEN server.
Key Actionable Insights
1Implementing a push messaging system can significantly enhance user experience by providing real-time updates.This is particularly important in applications like ride-sharing, where timely information about driver availability and trip status is crucial.
2Utilizing gRPC can streamline communication between services and improve performance through features like multiplexing and real-time acknowledgments.This is essential for applications that require low latency and high reliability, especially in mobile environments.
3Prioritizing messages based on their importance can optimize resource usage and enhance responsiveness.By categorizing messages into high, medium, and low priority, developers can ensure that critical updates reach users without unnecessary delays.
Common Pitfalls
1
Over-reliance on polling can lead to performance degradation and increased server load.
As the number of features increases, the frequency of polling can overwhelm the backend, leading to slower response times and a poor user experience.
2
Failing to prioritize messages can result in critical updates being delayed.
Without a prioritization strategy, users may not receive important notifications in a timely manner, which can affect their overall experience.
Related Concepts
Real-time Messaging Systems
Push Notification Strategies
Grpc And Its Advantages Over Traditional Protocols