WardrikCore.Events behaviour (wardrik_core v0.1.0-rc.3)

Copy Markdown

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.

Summary

Callbacks

Handles one event. The return value is ignored.

Callbacks

handle_event(t, opts)

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

Handles one event. The return value is ignored.