The HubConnect server is the center of a high-performance "hub-connected" smart home ecosystem.
Why HubConnect Server?
The Hubitat websocket is very fast. It is faster and more efficient than http, but it inefficient, especially in dense environments. The Hubitat eventsocket (websocket) has one attribute that makes it especially inefficient; events are not deduplicated like they are in the event logs for each device. Due to the nature of the eventsocket, event traffic on the server hub increases proportionately with each hub connected. This has the inverse effect of increasing the number of events presented to each remote hub.
The HubConnect server solves this by performing three key functions; filtering, deduplication, and routing.
HubConnect Server Messaging
Filtering - Without HubConnect server, every Hubitat hub receives and processes every event from every hub. Filtering is subscription-based and ensures that any specific hub receives only the events for which it is interested. This can relieve as much as 99% of the processing load from remote hubs.
Deduplication - The Hubitat eventsocket (websocket) does not deduplicate events. This can often mean a stream of 2-5 identical events being send over the socket. HubConnect server remembers the last message sent to a hub, and if another one comes in that is identical, it is blocked from being passed on to the hub.
Routing - HubConnect server is build upon a multi-process model in which each hub connection is provisioned with a seperate process for both throughout and latency. HubConnect routes commands between hubs, again ensuring devices commands are delivered only to the hub for which the device resides.
All non-event messaging, such is inter-hub communication, HubConnect system management, device sync, and other utilities continue to use http so that these intensive tasks do not impact the servers ability to pass messages in real-time.