@Override
  public boolean set(DataNodeConfig config) {
    boolean primaryResult = primarySource.set(config);
    try {
      boolean secondaryResult = secondarySource.set(config);
      if (primaryResult != secondaryResult) {
        metrics.setSwallowedErrorCount.inc();
        LOGGER.error("Results differ for set({}). sourceOfTruth={}, secondarySource={}", config, primaryResult,
            secondaryResult);
      }
    } catch (Exception e) {
      metrics.setSwallowedErrorCount.inc();
      LOGGER.error("Error from secondarySource.set({})", config, e);
    }
    return primaryResult;
  }
@param primarySource the source of truth for users of this class.
@param secondarySource all operations are also attempted against this source, but if the results of the operation
                       differ from the primary, inconsistencies are just recorded with logs and metrics.
@param time a {@link Time} instance used for consistency verification.
@param metrics a {@link DataNodeConfigSourceMetrics} instance to use.
ambry-clustermap/src/main/java/com/github/ambry/clustermap/CompositeDataNodeConfigSource.java