anchor.diff:  
   -define(SERVER, ?MODULE).
   -define(RECHECK_INTERVAL, 10000).
  +-define(RECHECK_INTERVAL_NOT_READY, 2000).
   
   -record(state, {}).
   -type state() :: #state{}.
  
positive.code:             _ = ets:new(vmq_status, [{read_concurrency, true}, public, named_table]),
              check_ready(),
              erlang:send_after(?RECHECK_INTERVAL, self(), recheck),
              {ok, #state{}};
          {error, Reason} ->
              {stop, Reason}
  
negative.code:     {ok, State}.
  
  -spec handle_info(_, _) -> {'ok', _}.
  handle_info({nodedown, Node}, State) ->
      lager:warning("Cluster Node ~p DOWN", [Node]),
      _ = check_ready(),
      {ok, State};
  handle_info({nodeup, Node}, State) ->
      lager:info("Cluster Node ~p UP", [Node]),
      _ = check_ready(),
      {ok, State};
  handle_info(recheck, State) ->
      _ = check_ready(),
      erlang:send_after(case is_ready() of
                            true -> ?RECHECK_INTERVAL;
                            false -> ?RECHECK_INTERVAL_NOT_READY
                        end, self(), recheck),
      {ok, State};
  handle_info(Info, State) ->
      lager:warning("got unhandled info ~p", [Info]),
      {ok, State}.
  
  -spec terminate(_, _) -> 'ok'.
  