# `Ash.Reactor.Notifications`
[🔗](https://github.com/ash-project/ash/blob/v3.23.1/lib/ash/reactor/notifications.ex#L5)

Reactor middleware used to collect and emit notifications upon successful
completion of the Reactor.

# `complete`

When the reactor completes successfully, publish any queued notifications.

# `enqueue_notifications`

```elixir
@spec enqueue_notifications(
  Reactor.context(),
  Enumerable.t(Ash.Notifier.Notification.t())
) ::
  :ok | {:error, any()}
```

Add notifications to the queue to be published on reactor success.

# `error`

When the reactor fails, discard any queued notifications.

# `halt`

When halting the reactor, store any queued notifications in the context for
eventual resumption.

# `init`

When starting a reactor, start an agent to act as a temporary store of
notifications.

# `publish`

```elixir
@spec publish(
  Reactor.context(),
  Ash.Notifier.Notification.t() | [Ash.Notifier.Notification.t()]
) :: [Ash.Notifier.Notification.t()]
```

Dispatch notifications.

---

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