Serf is a decentralized solution for service discovery and orchestration that is lightweight, highly available, and fault tolerant.
Tell a serf agent to join a node on start
Using serf config file -config-file
you can indicate to your starting serf agent to join a specific node.
"start_join":["node2_host"],
You even can indicate multiple nodes :
"start_join":["node2_host","node3_host"]
If node2_host and node3_host are not available, your agent will terminate.
Keep agent alive, even if joinning nodes failed.
Just add localhost (your agent bind iface) to the list of node to join on start.
"start_join":["node2_host","node3_host","localhost"]