code: void storeNextEvent() {
      try {
        if (currentStream != null && currentStream.isOpen()) {
          final StitchEvent<ChangeEvent<BsonDocument>> event = currentStream.nextEvent();
          if (event == null) {
            return;
          }
  
          if (event.getError() != null) {
            throw event.getError();
          }
  
          if (event.getData() == null) {
            return;
          }
  
          logger.debug(String.format(Locale.US,
              "NamespaceChangeStreamListener::stream ns=%s event found: op=%s id=%s",
              nsConfig.getNamespace(), event.getData().getOperationType(), event.getData().getId()));
          nsLock.writeLock().lockInterruptibly();
          try {
            events.put(BsonUtils.getDocumentId(event.getData().getDocumentKey()), event.getData());
          } finally {
            nsLock.writeLock().unlock();
          }
  
          for (final Callback<ChangeEvent<BsonDocument>, Object> watcher : watchers) {
            watcher.onComplete(OperationResult.successfulResultOf(event.getData()));
          }
        }
      } catch (final InterruptedException | IOException ex) {
        logger.info(String.format(
            Locale.US,
            "NamespaceChangeStreamListener::stream ns=%s interrupted on "
                + "fetching next event: %s",
            nsConfig.getNamespace(),
            ex));
        logger.info("stream END – INTERRUPTED");
        Thread.currentThread().interrupt();
      } catch (final Exception ex) {
        // TODO: Emit error through DataSynchronizer as an ifc
        logger.error(String.format(
            Locale.US,
            "NamespaceChangeStreamListener::stream ns=%s exception on fetching next event: %s",
            nsConfig.getNamespace(),
            ex), ex);
        logger.info("stream END – EXCEPTION");
        final boolean wasInterrupted = Thread.currentThread().isInterrupted();
        this.close();
        if (wasInterrupted) {
          Thread.currentThread().interrupt();
        }
      }
    }
docs: Read and store the next event from an open stream. This is a blocking method.