async _dispatch(event, channels, notification, connectionId) {
    try {
      let updated = await global.kuzzle.pipe(event, notification);
      /**
       * @deprecated  Should be replaced by `core:realtime:notification:dispatch`
       */
      updated = await global.kuzzle.pipe("notify:dispatch", updated);

      const updatedInfo = await global.kuzzle.pipe(
        "core:realtime:notification:dispatch:before",
        {
          channels: channels,
          connectionId: connectionId,
          notification: updated,
        },
      );

      const action = updatedInfo.connectionId ? "notify" : "broadcast";

      global.kuzzle.entryPoint.dispatch(action, {
        channels: updatedInfo.channels,
        connectionId: updatedInfo.connectionId,
        payload: updatedInfo.notification,
      });
    } catch (error) {
      global.kuzzle.log.error(error);
    }
  }
Trigger a notify global event and, if accepted by plugins,
dispatch the payload to subscribers

@param {Array} channels - Subscribers channels to notify
@param {Notification.User|Notification.Document|Notification.Server} notification
@param {string} [connectionId] - Notify this connection, or broadcast
                                  if not provided
@param {boolean} [trigger] - If set to true, triggers Kuzzle plugins

@returns {Promise}