connection() :: map()
error_happend(exception :: struct(), message :: binary(), meta :: map()) :: :ok | :reject | :redeliver | {:reply, binary()}
parse(message :: binary(), meta :: map()) :: any()
process(payload :: any(), meta :: map()) :: :ok | :reject | :redeliver | {:reply, binary()}