defmodule MyEventHandler do require Logger use GenEvent def handle_event(:boom, state) do 1 = 2 end def handle_event(event, state) do Logger.info("Received #{inspect event} event") {:ok, state} end end defmodule MySupervisor do use Supervisor @evt_mgr_name :my_event_manager @mon_han_name :my_mon_handler def start_link, do: Supervisor.start_link(__MODULE__, []) def init(_) do config = MonHandler.get_config(@evt_mgr_name, MyEventHandler) children = [ worker(GenEvent, [[name: @evt_mgr_name]]), worker(MonHandler, [config]) ] opts = [strategy: :one_for_one, name: __MODULE__] supervise children, opts end end