anchor.diff:              Args,
               Callback,
               Since,
  -            Acc
  +            Acc,
  +            5000
           ),
           Callback({stop, pack_seqs(Seqs)}, AccOut);
       Error ->
  
positive.code: 
  keep_sending_changes(DbName, Args, Callback, Seqs, AccIn, Timeout) ->
      #changes_args{limit=Limit, feed=Feed, heartbeat=Heartbeat} = Args,
      {ok, Collector} = send_changes(DbName, Args, Callback, Seqs, AccIn),
      #collector{limit=Limit2, counters=NewSeqs, user_acc=AccOut} = Collector,
      LastSeq = pack_seqs(NewSeqs),
      if Limit > Limit2, Feed == "longpoll" ->
  
negative.code:         rows = Seqs % store sequence positions instead
      },
      %% TODO: errors need to be handled here
      try
          receive_results(Workers, State, Timeout, Callback, AccIn)
      after
          fabric_util:cleanup(Workers)
      end.
  
  receive_results(Workers, State, Timeout, Callback, AccIn) ->
      case rexi_utils:recv(Workers, #shard.ref, fun handle_message/3, State,
              infinity, Timeout) of
      {timeout, _NewState} ->
          {ok, AccOut} = Callback(timeout, AccIn),
          NewState = State#collector{user_acc = AccOut},
          receive_results(Workers, NewState, Timeout, Callback, AccOut);
      {_, NewState} ->
          {ok, NewState}
      end.
  
  handle_message({rexi_DOWN, _, _, _}, nil, State) ->
  