Origin Failover for Live Streaming via Segmented Stacks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge in live streaming is the technical difficulty of seamlessly migrating client devices away from an unreliable origin stack to minimize disruptions in user experience, given the short delay between live and client playheads and the redundancy requirements for load balancing.
Innovation Solution
Provisioning multiple isolated origin stacks that are monitored for reliability, with monitoring clients detecting errors and facilitating automatic failover by providing necessary information to client devices to establish new sessions with alternative stacks, thereby reducing user experience impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple origin stacks are provisioned for redundancy and load balancing, then system reliability is improved, but device complexity increases
Solution Approach 1:
The system is divided into multiple independent origin stacks, each capable of handling streaming sessions separately. This segmentation allows the system to maintain high reliability through redundancy while managing complexity by isolating each stack's operations and failures to individual units rather than the entire system.
Solution Approach 2:
Multiple origin stacks are provisioned in advance before any failure occurs. The system pre-configures redundant stacks with necessary streaming capabilities, so when a failure happens, failover can occur immediately without the complexity of dynamic provisioning during the failure event.
2Productivity
If failover is implemented quickly to minimize user experience impact, then service continuity is improved, but measurement precision deteriorates due to short delay between live and client playheads
Solution Approach 1:
The system continuously monitors the health status of origin stacks and the synchronization state between live and client playheads. This feedback mechanism allows the system to detect failures early and trigger failover at the optimal moment, balancing the need for quick service continuity with maintaining playhead synchronization precision.
Solution Approach 2:
The system prepares failover candidates in advance and pre-establishes their synchronization state with the live playhead. When a failure is detected, the pre-prepared stacks can immediately take over with minimal disruption to playhead synchronization, as they are already positioned correctly rather than requiring last-minute synchronization adjustments.
3Reliability
If multiple origin stacks are monitored and client devices are automatically migrated, then reliability is improved, but device complexity increases due to session management overhead
Solution Approach 1:
Client devices are equipped with automated session management capabilities that enable them to independently detect origin stack failures and migrate to alternative stacks without extensive external coordination. This self-service approach shifts complexity from the central system to the edge devices, allowing the system to maintain high reliability through automated failover while distributing the management overhead.
Solution Approach 2:
The system implements continuous monitoring of origin stack health and provides real-time feedback to client devices about stack status. This feedback enables clients to make informed decisions about session migration automatically, reducing the need for complex centralized session management while maintaining high reliability through distributed intelligence.
Data Source
AI summary
Techniques are described for automatically migrating client devices away from unreliable origin stacks in ways that mitigate potentially negative impacts on the user experience. Multiple origin stacks are provisioned in parallel to provide encoded versions of the same broadcast content for streaming to client devices. Each of the origin stacks is monitored to ensure that it is operating correctly. When an origin stack fails or becomes unreliable, each of the client devices involved in a session corresponding to the unreliable stack is provided with the information it needs to establish a new session corresponding to another one of the stacks.


