private MetadataStore getMetadataStoreForRunID() {
    String metadataStoreFactoryClass = appDesc.getConfig().getOrDefault(METADATA_STORE_FACTORY_CONFIG, DEFAULT_METADATA_STORE_FACTORY);
    MetadataStoreFactory metadataStoreFactory =
        ReflectionUtil.getObj(metadataStoreFactoryClass, MetadataStoreFactory.class);
    return metadataStoreFactory.getMetadataStore(RUN_ID_METADATA_STORE, appDesc.getConfig(), new MetricsRegistryMap());
  }
This is not to be confused with the metadata store created from the member {@link #metadataStoreFactory}.
The reason for the two Metadata store types (ZK and coordinator stream) is that the job model needs to be stored in
ZK because of the versioning requirements. Configs and startpoints are stored in the coordinator stream. This
disparity will be resolved with the next gen metadata store abstraction.
samza-core/src/main/java/org/apache/samza/runtime/LocalApplicationRunner.java