execute(connection, request, cb) {
    if (this.isShuttingDown) {
      debug("Shutting down. Dropping request: %a", request);
      this._isShuttingDownError(connection, request, cb);
      return;
    }

    debug("Funneling request: %a", request);

    global.kuzzle.funnel.execute(request, (error, result) => {
      const _res = result || request;

      if (error && !_res.error) {
        _res.setError(error);
      }

      this.logAccess(connection, _res);

      const response = _res.response.toJSON();

      cb(removeStacktrace(response));
    });
  }
@param {ClientConnection} connection
@param {Request} request
@param cb