anchor.diff:  
   rtm_entry_new(Key, RTMPid, Nth, AccPid) -> {Key, RTMPid, Nth, AccPid}.
   get_rtmkey(RTMEntry) -> element(1, RTMEntry).
  +set_rtmkey(RTMEntry, Val) -> setelement(1, RTMEntry, Val).
   get_rtmpid(RTMEntry) -> element(2, RTMEntry).
   get_nth(RTMEntry)    -> element(3, RTMEntry).
   get_accpid(RTMEntry) -> element(4, RTMEntry).
  
positive.code: commit(TM, Client, ClientsID, TLog) ->
      Msg = {tx_tm_rtm_commit, Client, ClientsID, TLog},
      comm:send_local(TM, Msg).
  
  %% be startable via supervisor, use gen_component
  -spec start_link(pid_groups:groupname(), any()) -> {ok, pid()}.
  
negative.code:               {NewRTMs, TableName, tx_tm, LAcceptor, GLLearner}, on);
          _ -> {NewRTMs, TableName, tx_tm, LAcceptor, GLLearner, QueuedMessages}
      end;
  
  on_init({new_node_id, Id}, {RTMs, TableName, tx_tm, LAcceptor, GLLearner, Queue}) ->
      IDs = ?RT:get_replica_keys(Id),
      NewRTMs = [ set_rtmkey(R, I) || {R, I} <- lists:zip(RTMs, IDs) ],
      {NewRTMs, TableName, tx_tm, LAcceptor, GLLearner, Queue};
  
  on_init({tx_tm_rtm_commit, _Client, _ClientsID, _TransLog} = Msg,
          {RTMs, TableName, tx_tm, LAcceptor, GLLearner, QueuedMessages} = _State) ->
  