anchor.diff:  
   %% @doc Generate RING for this process
   %% @private
  +-spec(gen_routing_table(?SYNC_MODE_CUR_RING|?SYNC_MODE_PREV_RING, pos_integer(), pos_integer(), list(#member{})) ->
  +             {ok, {pos_integer(), list(#ring_group{}), pos_integer(), pos_integer()}} | {error, atom()}).
   gen_routing_table(TargetRing,_NumOfReplicas,_NumOfAwarenessL2,_Members) when TargetRing /= ?SYNC_MODE_CUR_RING,
                                                                                TargetRing /= ?SYNC_MODE_PREV_RING ->
       {error, invalid_target_ring};
  
positive.code:                         ) + ?DEF_SYNC_MIN_INTERVAL,
      catch timer:apply_after(Time, gen_server, cast, [self(), sync]).
  
  %% @doc Heatbeat
  %% @private
  -spec(maybe_sync(#state{}) ->
               #state{}).
  
negative.code: 
  %% @doc Retrieve last record
  %% @private
  -spec(last_fun(list(#ring_group{})) ->
               not_found | {ok, #redundancies{}}).
  last_fun([]) ->
      not_found;
  last_fun(RingGroupList) ->
  