There will be a single Heartbeat instance which will act as a coordinator that synchronously talks to remote endpoints that has the ability to run synthetics tests and write the results back.
Sharding will be implemented on the Heartbeat layer where given 10 monitors to run on the next scheduled run or across 100s of monitors, Heartbeat based on the number of machines behind a endpoint, Will shard and send the monitor configuration to the remote synthetic service endpoints using Web socket connection. The remote Synthetics runner will be responsible for running the synthetics monitors and writing the results via Web socket connection.
In addition to that, The connection must be encrypted between the Heartbeat coordinator and the Synthetics monitors runner, We should look in to allowing users to configure custom certificates if necessary to establish the connection.
Proposal
There will be a single Heartbeat instance which will act as a coordinator that synchronously talks to remote endpoints that has the ability to run synthetics tests and write the results back.
Sharding will be implemented on the Heartbeat layer where given 10 monitors to run on the next scheduled run or across 100s of monitors, Heartbeat based on the number of machines behind a endpoint, Will shard and send the monitor configuration to the remote synthetic service endpoints using Web socket connection. The remote Synthetics runner will be responsible for running the synthetics monitors and writing the results via Web socket connection.
In addition to that, The connection must be encrypted between the Heartbeat coordinator and the Synthetics monitors runner, We should look in to allowing users to configure custom certificates if necessary to establish the connection.