Storm docs logo
Search the docs.../
Explore Storm Products

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 — Origin / Transcode
Code iconxml
<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 — Edge
Code iconxml
<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.

ParameterDescription
ClusterManager:hostnameHostname or IP address of the ClusterManager instance.
ClusterManager:portPort for the ClusterManager connection.
ClusterManager:isSSLWhether 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.

ParameterDescription
NodeAccessSettings:hostnamePublic hostname or IP address of this node.
NodeAccessSettings:portPublic port of this node (must be a port with an active RTMP protocol).
NodeAccessSettings:isSSLWhether the connection should use SSL.

Type-Specific Parameters

NodePriority (Origin & Transcode only)

NodePriority example
Code iconxml
<NodePriority>10</NodePriority>
ParameterDescriptionDefault
<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 example
Code iconxml
<CopyOnPublish>true</CopyOnPublish>
ParameterDescriptionDefault
<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:

Multiple ClusterManagers
Code iconxml
<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.

Environment Variables

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).

Environment variable example
Code iconxml
<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.

Support Needed?

If you have any questions or need assistance, please create a support ticket and our team will help you.

Blog
Support
About us
Patents
Term of use
Privacy policy
Contact
©2026 Storm Streaming Media. All Rights Reserved.