Meshwork

Meshwork is a mechanism for joining Perfect Streamer servers into a single network of nodes. Nodes of the same domain automatically discover each other and exchange service information over the gossip protocol characteristic of decentralized networks. Joining nodes provides three capabilities:

  • Live node status. On any node, the admin web interface shows the state of every other node of the network: which are in contact, which are silent, which are behind NAT, and when the last contact occurred. There is no need to open each server separately. A node that stops exchanging data goes to the offline state — this is immediately visible on all nodes.

  • Shared resource catalog (library). Inputs and outputs running on the nodes — UDP / RTP / Pro-MPEG / RIST / PS1 / SRT — are placed in a shared catalog visible on all nodes of the domain: this makes it convenient to pick a free address and port, avoid multicast collisions, and find where a required stream is already being sent or received. Within a domain the peer between nodes is brought up by autologin — without manual entry of logins and passwords on both sides.

  • Alert distribution across the domain. Alerts of one node are visible on all nodes of the same domain: a single window is enough for the operator on duty to monitor the whole site. External notifications need to be configured on one node of the domain only — notifications will then be delivered for all nodes of that domain.

Meshwork is a layer of visibility and coordination: it does not transfer streams between servers and does not change the broadcast configuration automatically. You still build the delivery scheme yourself, while Meshwork helps you plan and observe it.

Meshwork topology diagram: domain nodes in a full mesh of links, a node behind NAT as the initiator, a super-node in two domains without connecting them.

Meshwork topology: nodes of the same domain form a full mesh of direct links; a node behind NAT connects as the initiator; a super-node belongs to two domains but does not connect them to each other.

Key concepts

Node

A single Perfect Streamer server in the network. Each node has a short unique name by which the others recognize it. Without a name and a signing secret, a node does not participate in the network.

Domain

A logical group of nodes and, at the same time, an isolation boundary. Within one domain, nodes automatically discover each other, share a common resource catalog, and replicate alerts. Between different domains there is no exchange — domains are independent.

Auto-discovery (mesh)

It is sufficient to assign the nodes the same domain and at least one link — after that they discover each other on their own, without listing every neighbor manually. Within a domain a full mesh of direct links is formed: all nodes of the domain become direct neighbors, and no intermediate chains are built.

The link is specified over HTTP, but further exchange is carried over HTTPS. For a public network, configured HTTPS is mandatory; for an internal network (intranet address) HTTPS is not mandatory.

Explicit link

A peer can be specified manually — by address, name and a shared secret. Such a link always works, including over plain HTTP, and does not require a common domain. It is suitable for a point-to-point connection between two sites or for connecting a node behind NAT.

Super-node

A single node can belong to several domains at once. It sees the resources and nodes of each of its domains but does not connect the domains to each other — isolation is preserved. In the network map such a node is marked as super.

Alerts

The built-in alerting service monitors streams, node hardware, DVB reception and DVR recording, and raises alerts when something goes beyond the set limits. In a network with replication enabled, each node shows a consolidated set of alerts for the entire domain (see Alerts (alerter)).