anchor.diff:      notify_async(State, {notification, Channel, Pid, Payload}),
       {noreply, State}.
   
  +sync_required(#state{queue = Q} = State) ->
  +    case queue:is_empty(Q) of
  +        false ->
  +            case request_tag(State) of
  +                T when T == sync ->
  +                    State;
  +                _ ->
  +                    notify(State, {error, sync_required}),
  +                    sync_required(State#state{queue = queue:drop(Q)})
  +            end;
  +        true ->
  +            State#state{sync_required = true}
  +    end.
  +
   to_binary(B) when is_binary(B) -> B;
   to_binary(L) when is_list(L)   -> list_to_binary(L).
   
  
positive.code: handle_cast(Req = {_, sync}, State) ->
      #state{queue = Q} = State,
      send(State, $S, []),
      {noreply, State#state{queue = queue:in(Req, Q)}};
  
  handle_cast(cancel, State = #state{backend = {Pid, Key}}) ->
      {ok, {Addr, Port}} = inet:peername(State#state.sock),
  
negative.code:                 async,
                  parameters = [],
                  columns,
                  sync_required,
                  txstatus}).
  
  %% -- client interface --
  