Skip to main content

Sync Bridge

Purpose

Sync Bridge synchronizes selected configuration and real-time variables between one public Hub and one or more Edge nodes. The Hub listens for and aggregates Edge connections. Each Edge connects to the Hub and publishes its local mirror.

Configure the forwarding group range and target runtime state through Data Forwarding. This page covers the complete Sync Bridge role, multi-Hub endpoints, mutual-TLS, synchronization, failover, and debug settings.

Before you start

  1. Create one Sync Bridge target on the Hub and one on each Edge.
  2. Prepare a transport certificate for every node and configure both sides to trust the same CA in Development Configuration → Certificate Management.
  3. Use the same verification token on both sides and a unique local Peer ID for every node.
  4. Allow each Edge to reach the Hub listening address and port.

Open the plugin

Open Development Configuration → Data Forwarding and:

  1. Save one Sync Bridge target on the Hub and one on each Edge.
  2. Fill in the target group, name, enable state, and start timeout.
  3. In Target properties, choose the role and configure its listen address or Hub endpoint list, identity, mutual TLS, and synchronization limits.
  4. Enable the targets, confirm the Hub and Edge are connected, then run configuration and real-time verification.

Basic target information

SettingDefaultConfiguration
Group-Select a saved forwarding group; an Edge publishes only that group's range.
Target name-Required and unique within the group.
EnableEnabledDisable to stop listening or connecting.
Log levelInfoTemporarily use Debug for TLS, handshake, or synchronization diagnostics.
Start timeout60 secondsValid range is 1 to 3600 seconds.

Roles and connection

SettingDefaultDescription
RoleEdgePublisherSelect HubServer on the Hub or EdgePublisher on an Edge.
Local Peer IDEmpty (required)Use 1 to 100 letters, digits, dots, underscores, or hyphens; every node must be unique.
Configuration sync modeOn change and reconnectOn reconnect compares only after connection or a Hub request. On change and reconnect also syncs when the Edge range changes.
Listen address0.0.0.0:7777Address used by the Hub.
Hub endpointsEmpty (required on Edge)Edge tries the endpoint list in order. Each row contains a unique endpoint ID, Hub address, and TLS target host; up to 16 rows. Not used by the Hub role.

Multi-Hub failover

An Edge keeps its current Hub connection while heartbeats, real-time acknowledgements, and configuration synchronization succeed. A normal idle connection does not trigger a switch.

Failover occurs only after an actual link error, such as a heartbeat failure or timeout, a real-time send/acknowledgement timeout, a configuration-synchronization error, or a closed transport connection. After the current endpoint fails, the Edge tries the next endpoint in HubEndpoints order, then verifies configuration and restores a full snapshot before continuing with real-time updates.

When the primary Hub recovers, the Edge does not probe it and does not automatically switch back from the current backup. If the current backup later fails and a new connection cycle starts, the Edge tries the endpoint list again from the highest priority. The debug page's current Hub, failover count, endpoint states, and latest error show why a switch occurred.

Authentication and TLS

SettingDefaultDescription
Verification tokenEmpty (required)Second-stage handshake secret; Hub and Edge values must match exactly.
Transport certificateEmpty (required)Select the node's server or client certificate for mutual TLS.
Transport CA certificateEmpty (required)Select the CA used to validate the peer certificate chain.
TLS target hostConfigured per endpointEach Edge endpoint must match the Hub certificate DNS name or SAN; the Hub listener role does not use this field.
TLS protocolNone (system default)Select TLS 1.2 or TLS 1.3 when required; SSL 3.0, TLS 1.0, and TLS 1.1 are rejected.
Check certificate revocationEnabledChecks whether the peer certificate has been revoked according to the project certificate policy.

Synchronization and capacity

SettingDefaultRangeDescription
Heartbeat interval (ms)50001000 to 60000Connection health-check interval.
Real-time flush window (ms)2010 to 1000Combines variable changes before sending them.
Real-time acknowledgement timeout (ms)3000500 to 60000Maximum wait for the Hub to acknowledge a real-time batch.
Variables per real-time batch20001 to 10000Maximum variables in one real-time batch.
Bytes per real-time batch2621444096 to 1048576Maximum UTF-8 bytes in one real-time batch.
Configuration chunk bytes5242884096 to 1048576Maximum UTF-8 bytes in one configuration chunk.
Concurrent configuration peers41 to 32Edge peers the Hub can request configuration from concurrently.
Allow reverse RPCDisabled-Allows the Hub to write variables on an Edge; the variable write permission must also allow it. Enable only with explicit site authorization.

Configuration and real-time rules

  • The Hub can request configuration from one Edge or all known Edges.
  • Revision, checksum, staged chunks, and one atomic commit prevent partial configuration from being applied.
  • Existing mirror variables update only data type, unit, and description. The Hub keeps local names, expressions, alarms, history, and write permissions.
  • If an Edge deletes a variable or removes it from scope, the Hub keeps the local mirror and marks the source missing.
  • Real-time values are validated by Epoch, Sequence, and configuration revision. The Hub acknowledges applied values, and late values cannot overwrite newer state.
  • After reconnecting, configuration is verified first, then a complete current-value snapshot is restored before incremental updates resume.

Target variable properties

This plugin has no additional target variable fields. A variable must already be inside the Edge target's forwarding group. Reverse writes must also satisfy source-variable permission and site safety rules.

Functions

FunctionPurpose
Status and peersUse Status and peers to check the connection state and latest result.
Configuration synchronizationUse Configuration synchronization and review the returned result.
Send full snapshotUse Send full snapshot with an approved test point and confirm site safety before execution.
ReconnectUse Reconnect and review the returned result.
Export diagnosticsUse Export diagnostics to inspect mapped values, status, counters, recent messages, or the latest result.

Target debug

Open Development Configuration → Data Forwarding, select the Sync Bridge target, and open Debug → Protocol Debug · SyncBridge.

FeaturePurpose
Status and peersShows role, local node, transport state, peer connections, pending counts, latency, and the latest error.
Synchronize configurationLets a Hub request all or selected configuration from Edge peers.
Send full snapshotMakes an Edge send the current forwarding-range snapshot immediately.
ReconnectMakes an Edge disconnect and establish a new Hub connection.
Export diagnosticsExports connection and synchronization statistics for troubleshooting.

Sync Bridge protocol debug panel

Transport ready means the local listener or connection component has started. A Hub with no connected Edge may still be shown as offline.

Verify the target

  1. Enable the Hub and Edge targets. Confirm that the Hub debug panel lists the Edge Peer ID as connected.
  2. Request a single-Edge configuration synchronization from the Hub and confirm matching revision and checksum.
  3. Change one approved test variable inside the Edge forwarding range.
  4. Confirm the value, update time, and inbound sequence on the Hub, and make sure pending and inflight counts return to normal.
  5. Interrupt the current Hub's actual link. Confirm that the Edge switches only after an error to the next endpoint; after the primary recovers, it must not switch back automatically.
  6. Interrupt the current backup. On the next connection cycle, confirm that endpoints are retried from highest priority and synchronization resumes.

Troubleshooting

SymptomCheck
Edge cannot connect to HubHub listen address, Edge remote address, firewall, verification token, and both target logs.
TLS handshake failsTransport certificate, CA, TLS target host, certificate validity, and revocation check.
Connected but no variables arriveEdge forwarding range, configuration sync mode, full snapshot, and pending count.
Configuration does not synchronizePeer ID, configuration revision, sync mode, then run Synchronize configuration from the Hub.
Reverse write failsAllow reverse RPC, source-variable write permission, value type, and site interlocks.
Hub switches while idleInspect heartbeat, real-time acknowledgement, and configuration-sync logs. A healthy idle connection is retained; only an actual error or closed connection triggers failover.
The primary Hub does not take back the connectionThis is expected. The Edge does not probe a recovered primary. It retries the priority list only when the current endpoint later fails and a new connection cycle starts.
  • Data Forwarding: Edge forwarding ranges and common target operations.
  • Certificate Management: Generate or import transport and CA certificates.
  • See Roles and connection and Multi-Hub failover on this page for the complete Hub, Edge, and redundant-endpoint configuration.
  • Plugin Manual Index: Other collection and data-forwarding plugins.