@Override
  public <T extends AbstractConfiguration<?>> ClusterManagementRealizationResult delete(
      T config) {
    // validate that user used the correct config object type
    CacheConfigurationManager configurationManager =
        (CacheConfigurationManager) getConfigurationManager(config);

    if (persistenceService == null) {
      return assertSuccessful(new ClusterManagementRealizationResult(StatusCode.ERROR,
          "Cluster configuration service needs to be enabled."));
    }

    lockCMS();
    try {
      try {
        // first validate common attributes of all configuration object
        commonValidator.validate(CacheElementOperation.DELETE, config);

        ConfigurationValidator validator = validators.get(config.getClass());
        if (validator != null) {
          validator.validate(CacheElementOperation.DELETE, config);
        }
      } catch (IllegalArgumentException e) {
        raise(StatusCode.ILLEGAL_ARGUMENT, e);
      }

      String[] groupsWithThisElement =
          memberValidator.findGroupsWithThisElement(config, configurationManager);
      if (groupsWithThisElement.length == 0) {
        raise(StatusCode.ENTITY_NOT_FOUND,
            config.getClass().getSimpleName() + " '" + config.getId() + "' does not exist.");
      }

      // execute function on all members
      ClusterManagementRealizationResult result = new ClusterManagementRealizationResult();

      List<RealizationResult> functionResults = executeCacheRealizationFunction(
          config, CacheElementOperation.DELETE,
          memberValidator.findServers(groupsWithThisElement));
      functionResults.forEach(result::addMemberStatus);

      // if any false result is added to the member list
      if (result.getStatusCode() != StatusCode.OK) {
        result.setStatus(StatusCode.ERROR, "Failed to delete on all members.");
        return result;
      }

      // persist configuration in cache config
      List<String> updatedGroups = new ArrayList<>();
      List<String> failedGroups = new ArrayList<>();
      for (String finalGroup : groupsWithThisElement) {
        try {
          configurationManager.delete(config, finalGroup);
          updatedGroups.add(finalGroup);
        } catch (Exception e) {
          logger.error(e.getMessage(), e);
          failedGroups.add(finalGroup);
        }
      }

      setResultStatus(result, updatedGroups, failedGroups);

      return assertSuccessful(result);
    } finally {
      unlockCMS();
    }
  }
each locator will have one instance of this running if enabled
geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java