anchor.diff:           boot_step_release_lock/0]).
   
   -rabbit_boot_step({autocluster_discover_and_join,
  -                   [{description, <<"Automated cluster configuration - lock, discover and join">>},
  +                   [{description, <<"rabbitmq-autocluster: lock acquisition, discovery and clustering">>},
                       {mfa,         {autocluster, boot_step_discover_and_join, []}},
                       {enables,     pre_boot}]}).
   
   -rabbit_boot_step({autocluster_register,
  -                   [{description, <<"Automated cluster configuration - register">>},
  +                   [{description, <<"rabbitmq-autocluster: registeration with the backend">>},
                       {mfa,         {autocluster, boot_step_register, []}},
                       {requires,    notify_cluster}]}).
   
   -rabbit_boot_step({autocluster_unlock,
  -                   [{description, <<"Automated cluster configuration - release lock">>},
  +                   [{description, <<"rabbitmq-autocluster: lock release">>},
                       {mfa,        {autocluster, boot_step_release_lock, []}},
                       {requires,   autocluster_register}]}).
   
  -%% Boot sequence steps - exported for better diagnostics, so we can
  -%% get current step name using erlang:fun_info/2
  +%% Boot sequence steps. These are exported for better diagnostics, so we can
  +%% get current step name using `erlang:fun_info/2`.
   -export([initialize_backend/1,
            acquire_startup_lock/1,
            find_best_node_to_join/1,
            maybe_cluster/1,
  -         register_in_backend/1,
  +         register_with_backend/1,
            release_startup_lock/1]).
   
   -include("autocluster.hrl").
  
positive.code: 
  %%--------------------------------------------------------------------
  %% @doc
  %% Scrapes backend for list of nodes to possibly cluster to, chooses
  %% the best one (if any at all) and tries to join to that node.
  %% Startup sequence is protected against races by backend locking
  %% mechanism (or by random delay for backend without lock support).
  %% @end
  %%--------------------------------------------------------------------
  -spec boot_step_discover_and_join() -> ok.
  boot_step_discover_and_join() ->
      ensure_logging_configured(),
      autocluster_log:info("Running discover/join stage"),
      start_dependee_applications(),
      Steps = [fun autocluster:initialize_backend/1,
               fun autocluster:acquire_startup_lock/1,
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  boot_step_release_lock() ->
      autocluster_log:info("Running lock release step"),
      run_steps([fun autocluster:release_startup_lock/1]).
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Run initializations steps in order.
  %%
  %% - When step succeeds, it returns updated state that is passed to
  %%   subsequent steps.
  %% - When step fails, error is logged and processing stops. Depending
  