anchor.diff:      Nodes = mnesia_cluster_utils:cluster_nodes(running),
       _ = [ets:insert(vmq_status, {Node, true}) ||Node <- Nodes],
       _ = check_ready(Nodes),
  -    mnesia_cluster_monitor:subscribe(self()),
  +    net_kernel:monitor_nodes(true),
       {ok, #state{}}.
   
   %%--------------------------------------------------------------------
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  -spec handle_info(_, _) -> {'noreply', _}.
  handle_info({node_down, Node}, State) ->
      Nodes = mnesia_cluster_utils:cluster_nodes(all),
      ets:delete(vmq_status, Node),
      _ = check_ready(Nodes),
      {noreply, State};
  handle_info({node_up, Node}, State) ->
      Nodes = mnesia_cluster_utils:cluster_nodes(all),
      ets:insert(vmq_status, {Node, true}),
      _ = check_ready(Nodes),
      {noreply, State};
  handle_info(_Info, State) ->
      {noreply, State}.
  
negative.code: %%%===================================================================
  %%% Internal functions
  %%%===================================================================
  check_ready() ->
      Nodes = mnesia_cluster_utils:cluster_nodes(all),
      check_ready(Nodes).
  
  check_ready(Nodes) ->
      check_ready(Nodes, [], ets:match(vmq_status, '$1')).
  
  