Called when store session starts.
Called when store session ends.
@callback init(session_id :: binary(), params :: any()) :: {:ok, state :: any()} | {:ok, state :: any(), key :: binary()} | {:error, reason :: binary()}
@callback mutation( name :: binary(), data :: any(), session_id :: binary(), params :: any(), state :: any() ) :: {:reply, message :: any(), state :: any()} | {:noreply, state :: any()} | {:error, state :: any()}
@callback terminate(session_id :: binary(), params :: any(), state :: any()) :: any()