anchor.diff:  %% userdevguide-begin rt_loop:state
   -opaque(state_active() :: {Neighbors    :: nodelist:neighborhood(),
                              RT           :: ?RT:rt(),
  -                           ERT          :: ?RT:external_rt()}).
  +                           ERT          :: ?RT:external_rt(),
  +                           DHTNodePid   :: comm:mypid()}).
   -type(state_inactive() :: {inactive,
                              MessageQueue::msg_queue:msg_queue()}).
   %% -type(state() :: state_active() | state_inactive()).
  
positive.code: on_active(Message, State) ->
      ?RT:handle_custom_message(Message, State).
  
  -spec lookup_aux_chord(Neighbors::nodelist:neighborhood(), RT::?RT:external_rt(), Key::intervals:key(),
                         Hops::non_neg_integer(), Msg::comm:message()) -> ok.
  lookup_aux_chord(Neighbors, ERT, Key, Hops, Msg) ->
      %% TODO : wrap_message expects a dht_node_state
      %% Noop in chord, simple
      %% frt_common: Neighbours, node_id, external_rt,
  
negative.code:                          unknown_event;
                 ({deactivate_rt}, state_active())
                    -> {'$gen_component', [{on_handler, Handler::gen_component:handler()},...], State::state_inactive()}.
  on_active({deactivate_rt}, {Neighbors, _OldRT, _ERT, DHTPid})  ->
      log:log(info, "[ RT ~.0p ] deactivating...~n", [comm:this()]),
      rm_loop:unsubscribe(self(), ?MODULE),
      % send new empty RT to the dht_node so that all routing messages
      % must be passed to the successor:
      comm:send_local(DHTPid, {rt_update, ?RT:empty_ext(Neighbors)}),
      gen_component:change_handler({inactive, msg_queue:new()},
                                   fun ?MODULE:on_inactive/2);
  
  %% userdevguide-begin rt_loop:update_rt
  % Update routing table with changed neighborhood from the rm
  on_active({update_rt, OldNeighbors, NewNeighbors}, {_Neighbors, OldRT, OldERT, DHTPid}) ->
      case ?RT:update(OldRT, OldNeighbors, NewNeighbors) of
          {trigger_rebuild, NewRT} ->
              %% ?RT:check(OldRT, NewRT, OldNeighbors, NewNeighbors, true),
              NewERT = rt_chord:check_tmp(OldRT, NewRT, OldERT, OldNeighbors, NewNeighbors, true), % TODO replace _tmp and rt_chord
              % trigger immediate rebuild
              gen_component:post_op({periodic_rt_rebuild}, {NewNeighbors, NewRT, NewERT, DHTPid})
          ;
          {ok, NewRT} ->
              %% ?RT:check(OldRT, NewRT, OldNeighbors, NewNeighbors, true),
              NewERT = rt_chord:check_tmp(OldRT, NewRT, OldERT, OldNeighbors, NewNeighbors, true), % TODO replace _tmp and rt_chord
              {NewNeighbors, NewRT, NewERT, DHTPid}
      end;
  %% userdevguide-end rt_loop:update_rt
  
  