- Configuration config = new ConfigurationImpl("module-shards.conf", "modules.conf");
- final DistributedDataStore dataStore = new DistributedDataStore(actorSystem,
- new ClusterWrapperImpl(actorSystem), config, introspector.newContextFactory());
+ final Configuration config = new ConfigurationImpl("module-shards.conf", "modules.conf");
+ final ClusterWrapper clusterWrapper = new ClusterWrapperImpl(actorSystem);
+ final DatastoreContextFactory contextFactory = introspector.newContextFactory();
+
+ // This is the potentially-updated datastore context, distinct from the initial one
+ final DatastoreContext datastoreContext = contextFactory.getBaseDatastoreContext();
+
+ final AbstractDataStore dataStore;
+ if (datastoreContext.isUseTellBasedProtocol()) {
+ dataStore = new ClientBackedDataStore(actorSystem, clusterWrapper, config, contextFactory,
+ restoreFromSnapshot);
+ LOG.info("Data store {} is using tell-based protocol", datastoreName);
+ } else {
+ dataStore = new DistributedDataStore(actorSystem, clusterWrapper, config, contextFactory,
+ restoreFromSnapshot);
+ LOG.info("Data store {} is using ask-based protocol", datastoreName);
+ }