code: private void dispatchRequest(final CouchbaseRequest request) {
          RingBufferMonitor.instance().removeRequest(request);
  
          ClusterConfig config = configuration;
  
          //prevent non-bootstrap requests to go through if bucket not part of config
          if (!(request instanceof BootstrapMessage)) {
              BucketConfig bucketConfig = config == null ? null : config.bucketConfig(request.bucket());
              if (config == null || (request.bucket() != null  && bucketConfig == null)) {
                  failSafe(environment.scheduler(), true, request.observable(),
                          new BucketClosedException(request.bucket() + " has been closed"));
                  return;
              }
  
              //short-circuit some kind of requests for which we know there won't be any handler to respond.
              try {
                  checkFeaturesForRequest(request, bucketConfig);
              } catch (ServiceNotAvailableException e) {
                  failSafe(environment.scheduler(), true, request.observable(), e);
                  return;
              }
  
              //don't send timed out requests to server
              if(!request.isActive()) {
                  return;
              }
          }
  
          locator(request).locateAndDispatch(request, nodes, config, environment, responseBuffer);
      }
docs: Helper method to dispatch the incoming {@link CouchbaseRequest} to one or more nodes.
  
  @param request the request to dispatch.