anchor.diff:      end.
   
   maybe_bootstrap_root_ensemble(Ring) ->
  -    IsEnabled = (whereis(riak_ensemble_sup) =/= undefined),
  +    IsEnabled = riak_ensemble_manager:enabled(),
       IsClaimant = (riak_core_ring:claimant(Ring) == node()),
       IsReady = riak_core_ring:ring_ready(Ring),
       case IsEnabled and IsClaimant and IsReady of
  
positive.code:     State2 = tick(State),
      {noreply, State2};
  
  handle_info(_Info, State) ->
      {noreply, State}.
  
  
negative.code:         [] ->
              ok;
          _ ->
              Self = self(),
              spawn_link(fun() ->
                                 async_bootstrap_members(Self, Changes)
                         end),
              ok
      end.
  
  async_bootstrap_members(Claimant, Changes) ->
      RootLeader = riak_ensemble_manager:rleader_pid(),
      case riak_ensemble_peer:update_members(RootLeader, Changes, 10000) of
          ok ->
              ok;
          _ ->
              reset_ring_id(Claimant),
              ok
      end.
  
  %% Reset last_ring_id, ensuring future tick re-examines the ring even if the
  %% ring has not changed.
  reset_ring_id(Pid) ->
      Pid ! reset_ring_id.
  
  %% =========================================================================
  %% Claimant rebalance/reassign logic
  