Pushy to the Limit: Evolving Netflix’s WebSocket proxy for the future

Table of Contents
- Introduction
- Evolution of Pushy
- Integration of Voice Control
- Scaling Pushy for Future Needs
- Message Processor Evolution
- Leveraging KeyValue for Performance
- Scaling Policy and Considerations
Introduction
The evolution of Pushy as a WebSocket proxy for Netflix has been crucial in enabling data to be sent to devices from backend services on demand. This post outlines the growth of Pushy and how it has scaled to handle hundreds of millions of concurrent WebSocket connections, deliver hundreds of thousands of messages per second, and maintain a 99.999% message delivery reliability rate.
Evolution of Pushy
Pushy has transitioned from a best-effort message delivery service to a vital component of the Netflix ecosystem. The post delves into the transformation of Pushy and its adaptation to new and future requirements, catering to a vast number of devices and ensuring efficient message delivery.
Integration of Voice Control
The post explores the integration of voice control as a feature for Netflix, allowing users to interact with the platform using voice commands. The partnership with Amazon for Alexa use cases is highlighted, showcasing how messages are generated, queued, and sent to Pushy for device delivery.
Scaling Pushy for Future Needs
As Pushy serves an expanding list of devices, its scalability and stability are crucial. The post discusses revisiting past assumptions and design decisions for Pushy's future role, ensuring partners can efficiently deliver messages to devices.
Message Processor Evolution
An essential aspect of Pushy's growth is the evolution of the asynchronous message processor. Details on transitioning from a Mantis stream-processing job to a more efficient processor for handling messages are provided, showcasing enhancements in processing capabilities.
Leveraging KeyValue for Performance
The post elaborates on utilizing KeyValue, a new offering from the CDE team, to optimize performance for Pushy's needs. By fine-tuning the storage solution, Pushy has achieved autopilot scalability and low-latency request handling.
Scaling Policy and Considerations
Insights into Pushy's scaling policy, focusing on scaling based on the number of connections rather than CPU usage, are shared. The post discusses strategies for horizontal scaling and the challenges of managing costs and connection limits while expanding Pushy's capabilities.
This structure provides a comprehensive overview of Pushy's evolution, integration of new features, scaling strategies, and technological enhancements for future growth.