-spec on_membership_change(fun((cluster_id(),
_Local :: site(),
_Remote :: site(),
_IsMember ::
boolean()) -> _),
classy_hook:conf()) -> classy_hook:hook().
Register a hook that is executed when a site joins or leaves a cluster.
Note: this hook can be executed multiple times if the local node is abruptly stopped while the hooks are running. If the remote site re-joins the cluster while the local was down, the hook may or may not run.