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 decentralised 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 catalogue (library). UDP, RTP, Pro-MPEG COP3/RTP+FEC (SMPTE 2022-1/2), RIST, PS1 and SRT inputs and outputs running on the nodes are placed in a shared catalogue visible on all nodes of the domain (Shared resource catalogue): with it you can 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 replication across the domain. Alerts of one node are visible on all nodes of the same domain: the operator on duty can monitor the whole site from a single window. External notifications need to be configured on one node of the domain only: it also delivers those alerts of other nodes that are replicated across the domain (Domain-wide replication of alerts).

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 recognise 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 the common resource catalogue, 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 neighbour manually. Within a domain a full mesh of direct links is formed: all nodes of the domain become direct neighbours, 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 neighbour 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 its main domain such a node is a full participant in the network; in the additional ones it is linked only to the neighbours from its list and sees the other nodes of those domains through them. 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)).