# `Hyper.Node.Budget.Advertiser`
[🔗](https://github.com/harmont-dev/hyper/blob/main/lib/hyper/node/budget/advertiser.ex#L1)

Owns this node's entry in `Hyper.Cluster.Budget`. Registers a fresh
`Hyper.Node.Budget.NodeState` on start and re-publishes it on demand
(`publish/0`, called on every allocation by `Hyper.Node.Budget.Hard`) and on a
periodic heartbeat (keeps drifting soft-load fresh and restores the
registration if the registry restarted).

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `publish`

```elixir
@spec publish() :: :ok
```

Recompute and re-publish this node's state now.

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
