event() :: {:send, String.t() | nil, term()} | {:broadcast, String.t() | nil, term()} | {:queue, String.t(), String.t() | nil, term()} | {:queue_confirm, String.t()}
handle_event(event()) :: term()