docs: @Nullable
    private List<LookupBean> getLookupListFromCoordinator(String tier)
    {
      try {
        MutableBoolean firstAttempt = new MutableBoolean(true);
        Map<String, LookupExtractorFactoryContainer> lookupMap = RetryUtils.retry(
            () -> {
              if (firstAttempt.isTrue()) {
                firstAttempt.setValue(false);
              } else if (lookupConfig.getCoordinatorRetryDelay() > 0) {
                // Adding any configured extra time in addition to the retry wait. In RetryUtils, retry wait starts from
                // a few seconds, that is likely not enough to coordinator to be back to healthy state, e. g. if it
                // experiences 30-second GC pause. Default is 1 minute
                Thread.sleep(lookupConfig.getCoordinatorRetryDelay());
              }
              return tryGetLookupListFromCoordinator(tier);
            },
            e -> true,
            lookupConfig.getCoordinatorFetchRetries()
        );
        if (lookupMap != null) {
          List<LookupBean> lookupBeanList = new ArrayList<>();
          lookupMap.forEach((k, v) -> lookupBeanList.add(new LookupBean(k, null, v)));
          return lookupBeanList;
        } else {
          return null;
        }
      }
      catch (Exception e) {
        LOG.error(e, "Error while trying to get lookup list from coordinator for tier[%s]", tier);
        return null;
      }
    }