Clustering of agents in an Elixir-powered CI service

Hi,
I’m building a CI service powered with Elixir where there are hosts (agents) that are responsible for picking builds from a queue and running them using a virtualization technology from the host.

I was wondering what the best strategy to cluster those nodes is. Linux environments will be created on a cloud platform like Google Cloud, so I’ll have a list of IP addresses that I increase/decrease based on the demand. In the case of Mac environments the list will be more static.

How should the central server communicate with those? (e.g. ssh)

Thanks in advance