anchor.diff:                  FoundCluster
           end,
   
  -    reply_async(
  -      From, Timeout,
  -      fun () ->
  -              R = remote_cluster_and_bucket(RemoteCluster, Bucket, Username, Password),
  -              case R of
  -                  {ok, {NewRemoteCluster, RemoteBucket}} ->
  -                      ?MODULE ! {cache_remote_cluster, UUID, NewRemoteCluster},
  -                      ?MODULE ! {cache_remote_bucket, {UUID, Bucket}, RemoteBucket},
  -
  -                      {ok, RemoteBucket};
  -                  Error ->
  -                      Error
  -              end
  -      end),
  -
  -    {noreply, State};
  +    State1 = enqueue_waiter({UUID, Bucket}, From, Timeout, State),
  +    State2 = request_remote_bucket(RemoteCluster, Bucket,
  +                                   Username, Password, State1),
  +
  +    {noreply, State2};
   handle_call(Request, From, State) ->
       ?log_warning("Got unexpected call request: ~p", [{Request, From}]),
       {reply, unhandled, State}.
  
positive.code:                        [TableName, Path, Error]),
              ok
      end.
  
  expect(Value, Context, Extract, K) ->
      case Extract(Value, Context) of
  
negative.code:           {node, node(), remote_clusters_info_config_update_interval}, 10000)).
  
  -record(state, {cache_path :: string(),
                  scheduled_config_updates :: set(),
                  remote_bucket_requests :: dict(),
                  remote_bucket_waiters :: dict(),
                  remote_bucket_waiters_trefs :: dict()}).
  
  start_link() ->
      gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
  