lib/process_hub/constant/hook.ex

defmodule ProcessHub.Constant.Hook do
  @moduledoc """
  Available hooks for ProcessHub.
  """

  @doc """
  Hook triggered when a new node is registered under the ProcessHub cluster.
  """
  @spec cluster_join() :: :cluster_join_hook
  def cluster_join(), do: :cluster_join_hook

  @doc """
  Hook triggered when a node is unregistered from the ProcessHub cluster.
  """
  @spec cluster_leave() :: :cluster_leave_hook
  def cluster_leave(), do: :cluster_leave_hook

  @doc """
  Hook triggered when a new process is registered in the ProcessHub registry.
  """
  @spec registry_pid_inserted() :: :registry_pid_insert_hook
  def registry_pid_inserted(), do: :registry_pid_insert_hook

  @doc """
  Hook triggered when a process is unregistered from the ProcessHub registry.
  """
  @spec registry_pid_removed() :: :registry_pid_remove_hook
  def registry_pid_removed(), do: :registry_pid_remove_hook

  @doc """
  Hook triggered when a process is migrated to another node.
  """
  @spec child_migrated() :: :child_migrated_hook
  def child_migrated(), do: :child_migrated_hook

  @doc """
  Hook triggered when the priority level of the local event queue has been updated.
  """
  @spec priority_state_updated() :: :priority_state_updated_hook
  def priority_state_updated(), do: :priority_state_updated_hook

  @doc """
  Hook triggered before processes are redistributed.
  """
  @spec pre_nodes_redistribution() :: :pre_nodes_redistribution_hook
  def pre_nodes_redistribution(), do: :pre_nodes_redistribution_hook

  @doc """
  Hook triggered after processes are redistributed.
  """
  @spec post_nodes_redistribution() :: :post_nodes_redistribution_hook
  def post_nodes_redistribution(), do: :post_nodes_redistribution_hook
end