docs: @Override
      public void beforeRun() {
          namespace = new DistributedObjectNamespace(getServiceName(), name);
  
          final EventJournal<J> journal = getJournal();
          if (!journal.hasEventJournal(namespace)) {
              throw new UnsupportedOperationException(
                      "Cannot subscribe to event journal because it is either not configured or disabled for " + namespace);
          }
  
          final int partitionId = getPartitionId();
          journal.cleanup(namespace, partitionId);
  
          startSequence = clampToBounds(journal, partitionId, startSequence);
  
          journal.isAvailableOrNextSequence(namespace, partitionId, startSequence);
          // we'll store the wait notify key because ICache destroys the record store
          // and the cache config is unavailable at the time operations are being
          // cancelled. Hence, we cannot create the journal and fetch it's wait notify
          // key
          waitNotifyKey = journal.getWaitNotifyKey(namespace, partitionId);
      }