class ActorUtils {

    public void setDatastoreContext(final DatastoreContextFactory contextFactory) {
        this.datastoreContext = contextFactory.getBaseDatastoreContext();
        setCachedProperties();

        // We write the 'updated' volatile to trigger a write memory barrier so that the writes above
        // will be published immediately even though they may not be immediately visible to other
        // threads due to unsynchronized reads. That's OK though - we're going for eventual
        // consistency here as immediately visible updates to these members aren't critical. These
        // members could've been made volatile but wanted to avoid volatile reads as these are
        // accessed often and updates will be infrequent.

        updated = true;

        if (shardManager != null) {
            shardManager.tell(contextFactory, ActorRef.noSender());
        }
    }

    public  ActorUtils(final ActorSystem actorSystem, final ActorRef shardManager,
            final ClusterWrapper clusterWrapper, final Configuration configuration);
    public  ActorUtils(final ActorSystem actorSystem, final ActorRef shardManager,
            final ClusterWrapper clusterWrapper, final Configuration configuration,
            final DatastoreContext datastoreContext, final PrimaryShardInfoFutureCache primaryShardInfoCache);

}