Netflix Tech Blog

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

thumbnail

Table of Contents

  1. Introduction
  2. Evolution of Pushy
  3. Integration of Voice Control
  4. Scaling Pushy for Future Needs
  5. Message Processor Evolution
  6. Leveraging KeyValue for Performance
  7. 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.