# `WardrikCore.Events`

Where an agent's events go, such as a log or a broadcast.

    defmodule MyApp.Events do
      @behaviour WardrikCore.Events

      @impl true
      def handle_event(%WardrikCore.Event{} = event, _opts) do
        Phoenix.PubSub.broadcast(MyApp.PubSub, "agent:#{event.metadata.agent_id}", event)
      end
    end

Give it to an agent as `events: {MyApp.Events, opts}`. It runs in the agent's process, so return
quickly.

# `handle_event`

```elixir
@callback handle_event(WardrikCore.Event.t(), opts :: term()) :: any()
```

Handles one event. The return value is ignored.

---

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