defmodule WhoNeedHelpWeb.DrainState do @moduledoc """ Tracks whether the current web node is draining before a planned shutdown. The flag is node-local by design. Operators can mark one replica as draining through a release RPC; readiness then fails on that replica while liveness remains available. """ @key {__MODULE__, :draining} @spec reset() :: :ok def reset do :persistent_term.put(@key, false) :ok end @spec begin_drain() :: :ok def begin_drain do :persistent_term.put(@key, true) :ok end @spec draining?() :: boolean() def draining?, do: :persistent_term.get(@key, false) end