The Flink OTT Software Architecture 📚
This section explains the basic software architecture of Flink OTT when integrated into a real-life streaming scenario. It also covers some key definitions, concepts, and terminologies in the Flink OTT ecosystem. To quickly understand the Flink OTT platform documentation, we suggest going over the following definitions and explanations to make sure we are on the same page when using specific terms, numbers, and concepts.
The Flink OTT infrastructure contains three main components, which split into multiple sub-components
The Flink OTT Client SDK
The main library that has to be integrated into your web or native application to use Flink OTT.
The digital entities that match users, group them into clusters and connect them via WebRTC. A single swarm can be used to optimize a single piece of content, a group of different video streams or every stream within an entire organization.
A set of configurations to initialize the swarm with. You can attach multiple configurations to a swarm, along with a set of rules that define which configuration to load for each end-user device. Swarm configurations can be used to enable/disable swarms, change the network behavior of peers and reduce or increase WebRTC traffic. These configurations can be made on a per-user base.
The Flink OTT Network Manager
This is the P2P tracker, all users keep a consistent connection. The Network Manager collects statistics from all end-user devices (IP, uplink and downlink capacities) and uses this information to calculate peer clusters and optimal distributions of content through the network. As users will be grouped not only based on network statistics but also depending on the consumed content, the Network Manager automatically creates network trackers to manage one particular source of content. Only devices, that are managed by the same tracker will be able to share content via WebRTC.
Trackers are used to organize a group of peers that consume the same stream resource (for example the same ABR level of the same video stream from the same CDN edge/domain). Trackers instruct their peers how to connect and what content to share. Based on how strict a swarm is configured, devices that run on the same swarm can still be managed by multiple trackers. This is mostly the case if a swarm is applied to a multi-bitrate stream. The swarm optimizes the video stream while there is one tracker for each available bitrate.
Note: To function properly, each tracker must have access to the resource requested by the peers it manages.
A set of configurations for a tracker. This includes peer-matching policies, the maximum size of peer-clusters and numerical thresholds for the clustering algorithms.
The Flink OTT Analytics Backend
A time-series database that allows you to collect, aggregate and visualize data from over 500,000 concurrent users with a maximum delay of 5 seconds. The Flink OTT Analytics Database runs on a distributed Clickhouse cluster. ### Events
Swarms can collect and send various data points from a client device and send it as an event to the Flink OTT Analytics Backend. With each event, your platform account ID, the swarm ID and currently running swarm configuration's ID is stored. This allows detailed segmentation and split testing between different swarm configurations.
Integrated into the Flink OTT web platform, the reporting dashboard allows you to deep dive into your collected data and visualizes it to gain maximum insight into your stream performance.