anchor.diff:                                            peers=Peers,
                                             id=Id,
                                             broadcast_enabled=IsBroadcastEnabled} = State0) ->
  -    {{ReplicateObjects, DbOps, Events, #state{nodeclock=NodeClock} = State1}, Replies} =
  -    lists:foldl(fun({From, {write, WriteOps}}, {Acc0, RAcc}) ->
  +    {ReplicateObjects, DbOps, #state{nodeclock=NodeClock} = State1} =
  +    lists:foldl(fun({{CallerPid, CallerRef}, {write, WriteOps}}, Acc0) ->
                           Acc1 =
                           lists:foldl(fun(WriteOp, AccAcc0) ->
                                               process_write_op(WriteOp, AccAcc0)
                                       end, Acc0, WriteOps),
  -                        {Acc1, [From|RAcc]}
  -                end, {{[], [], [], State0}, []}, Batch),
  +                        CallerPid ! {CallerRef, ok},
  +                        Acc1
  +                end, {[], [], State0}, Batch),
       UpdateNodeClock_DBOp = update_nodeclock_db_op(NodeClock),
       db_write(Config, [UpdateNodeClock_DBOp | lists:reverse(DbOps)]),
  -    lists:foreach(
  -      fun({CallerPid, CallerRef}) ->
  -              CallerPid ! {CallerRef, ok}
  -      end, Replies),
       case IsBroadcastEnabled of
           true ->
               #swc_config{transport=TMod} = Config,
  
positive.code:             swc_kv:add(DiscardObj, {Id, Counter}, Value)
      end,
      % save the new k/v and remove unnecessary causal information
      {AccDBOps1, AccEvents1} = strip_save_batch([{SKey, NewObj, DiskObj}], AccDBOps0, AccEvents0, State0, write_op),
  
      AccReplicate1 = [{SKey, NewObj}|AccReplicate0],
  
      State1 = State0#state{nodeclock=NodeClock1},
  
      {AccReplicate1, AccDBOps1, AccEvents1, State1}.
  
  process_replicate_op({SKey, Obj}, {AccDBOps0, AccEvents0, #state{config=Config, nodeclock=NodeClock0} = State0}) ->
      NodeClock1 = swc_kv:add(NodeClock0, Obj),
      State1 = State0#state{nodeclock=NodeClock1},
      % get and fill the causal history of the local key
  
negative.code:     % synchronize both objects
      FinalObj = swc_kv:sync(Obj, DiskObj),
      % save the new object, while stripping the unnecessary causality
      AccDBOps1 = strip_save_batch([{SKey, FinalObj, DiskObj}], AccDBOps0, State0, replicate_op),
      {AccDBOps1, State1}.
  
  add_object_to_log(DKM, SKey, Obj, AccDbOps) ->
      {Dots, _} = Obj,
  