Streaming Cluster Settings
The <StreamingClusterSettings> block configures how an application connects to the streaming cluster. It defines the list of ClusterManagers (supervisors) that coordinate stream distribution, as well as how other nodes can reach this application. The configuration differs slightly between application types.
Available in: origin, transcode, edge
Configuration for Origin & Transcode
Origin and transcode applications publish stream information to the ClusterManager and expose themselves so that other nodes (edge, transcode) can connect to pull streams.
<StreamingClusterSettings>
<SupervisorList>
<ClusterManager hostname="clustermanager01.example.com" port="443" isSSL="true">
<Priority>1</Priority>
<Secret>your-cluster-secret</Secret>
</ClusterManager>
</SupervisorList>
<NodeAccessSettings hostname="origin01.example.com" port="1935" isSSL="false" />
<NodePriority>10</NodePriority>
</StreamingClusterSettings>
Configuration for Edge
Edge applications connect to the ClusterManager to discover available streams and pull them from origin or transcode nodes on demand (or eagerly, depending on <CopyOnPublish>).
<StreamingClusterSettings>
<SupervisorList>
<ClusterManager hostname="clustermanager01.example.com" port="443" isSSL="true">
<Priority>1</Priority>
<Secret>your-cluster-secret</Secret>
</ClusterManager>
</SupervisorList>
<NodeAccessSettings hostname="edge01.example.com" port="1935" isSSL="false" />
<CopyOnPublish>true</CopyOnPublish>
</StreamingClusterSettings>
SupervisorList
The <SupervisorList> defines one or more ClusterManagers that coordinate stream discovery and routing within the cluster. Multiple ClusterManagers can be configured for redundancy — if the primary is unavailable, the application will connect to the next one based on priority.
| Parameter | Description |
|---|---|
ClusterManager:hostname | Hostname or IP address of the ClusterManager instance. |
ClusterManager:port | Port for the ClusterManager connection. |
ClusterManager:isSSL | Whether the connection should use SSL (true or false). |
<Priority> | Priority for this ClusterManager. Lower value means higher priority. |
<Secret> | Shared secret used for connection authentication between the node and ClusterManager. |
NodeAccessSettings
The <NodeAccessSettings> block defines how other nodes in the cluster can reach this application. This is the publicly accessible address that gets registered with the ClusterManager, so that edge or transcode applications know where to connect to pull streams.
| Parameter | Description |
|---|---|
NodeAccessSettings:hostname | Public hostname or IP address of this node. |
NodeAccessSettings:port | Public port of this node (must be a port with an active RTMP protocol). |
NodeAccessSettings:isSSL | Whether the connection should use SSL. |
Type-Specific Parameters
NodePriority (Origin & Transcode only)
<NodePriority>10</NodePriority>
| Parameter | Description | Default |
|---|---|---|
<NodePriority> | Priority value for this node when the cluster selects which origin or transcode to route to (0–1000). Higher value means higher priority. | 10 |
When multiple origin or transcode nodes are available, the ClusterManager uses the NodePriority value (along with current load) to determine which node should serve a given stream.
CopyOnPublish (Edge only)
<CopyOnPublish>true</CopyOnPublish>
| Parameter | Description | Default |
|---|---|---|
<CopyOnPublish> | If true, streams from origin or transcode nodes are immediately copied to this edge when published. If false, the edge waits until a viewer requests the stream before pulling it. | false |
Setting <CopyOnPublish> to true ensures that streams are available on the edge with zero delay when the first viewer connects, at the cost of higher bandwidth usage between origin and edge nodes.
Redundancy
You can define multiple ClusterManagers in the <SupervisorList> for failover purposes:
<SupervisorList>
<ClusterManager hostname="cm-primary.example.com" port="443" isSSL="true">
<Priority>1</Priority>
<Secret>cluster-secret</Secret>
</ClusterManager>
<ClusterManager hostname="cm-backup.example.com" port="443" isSSL="true">
<Priority>2</Priority>
<Secret>cluster-secret</Secret>
</ClusterManager>
</SupervisorList>
The application connects to the ClusterManager with the lowest priority value first. If that connection fails, it falls back to the next one.
All parameters support environment variables using the ${EV:VARIABLE_NAME} syntax. This is particularly useful for <NodeAccessSettings> values that often differ between environments (e.g., hostname, port, SSL).
<NodeAccessSettings hostname="${EV:EXTERNAL_DOMAIN}" port="${EV:EXTERNAL_PORT}" isSSL="${EV:EXTERNAL_SSL}" />
Fields locked by environment variables cannot be modified via the REST API.
If you have any questions or need assistance, please create a support ticket and our team will help you.