@Override
  public void update() {
    EventLogConfigOptionsService.getInstance().updateOptions(myRecorderId, myMetadataLoader);

    long lastModifiedLocally = myMetadataPersistence.getLastModified();
    long lastModifiedOnServer = myMetadataLoader.getLastModifiedOnServer();
    if (LOG.isTraceEnabled()) {
      LOG.trace(
        "Loading events scheme, last modified cached=" + lastModifiedLocally +
        ", last modified on the server=" + lastModifiedOnServer
      );
    }

    try {
      if (lastModifiedOnServer <= 0 || lastModifiedOnServer > lastModifiedLocally || isUnreachable()) {
        String rawEventsSchemeFromServer = myMetadataLoader.loadMetadataFromServer();
        String version = updateValidators(rawEventsSchemeFromServer);
        myMetadataPersistence.cacheEventsScheme(rawEventsSchemeFromServer, lastModifiedOnServer);
        if (LOG.isTraceEnabled()) {
          LOG.trace("Update local events scheme, last modified cached=" + myMetadataPersistence.getLastModified());
        }

        if (version != null && !StringUtil.equals(version, myVersion)) {
          myVersion = version;
          EventLogSystemLogger.logMetadataUpdated(myRecorderId, myVersion);
        }
      }
    }
    catch (EventLogMetadataLoadException | EventLogMetadataParseException e) {
      EventLogSystemLogger.logMetadataErrorOnUpdate(myRecorderId, e);
    }
  }
@Override
  public void update()