antikythera v0.3.0 AntikytheraEal.ClusterConfiguration.Behaviour behaviour View Source

Interface for cluster membership.

See AntikytheraEal for common information about pluggable interfaces defined in antikythera.

Link to this section Summary

Callbacks

Lists running ErlangVM nodes for the current deployment.

Returns identifier of the data center zone in which current node is running.

Link to this section Callbacks

Link to this callback

running_hosts()

View Source
running_hosts() :: Croma.Result.t(%{required(String.t()) => boolean()})

Lists running ErlangVM nodes for the current deployment.

On success this callback must return a map where each key is hostname (String.t) of a running node and each value is a boolean value representing whether the node is "active" or not. "Inactive" node is treated as during decommission process.

This callback is at the startup of each node in order to join the existing cluster. After successful startup, this callback is called periodically so that

  • all running nodes in the cluster maintain connections to each other, and
  • each node can notice and cleanup when it is about to be terminated.
Link to this callback

zone_of_this_host()

View Source
zone_of_this_host() :: String.t()

Returns identifier of the data center zone in which current node is running.

This callback is called only at startup and the return value is passed to RaftFleet.activate/1.