class DistributedShardFrontend implements ReadableWriteableDOMDataTreeShard {

    @Override
    public synchronized DOMDataTreeShardProducer createProducer(final Collection<DOMDataTreeIdentifier> paths) {
        for (final DOMDataTreeIdentifier prodPrefix : paths) {
            checkArgument(shardRoot.contains(prodPrefix), "Prefix %s is not contained under shard root", prodPrefix,
                paths);
        }

        final ShardProxyProducer ret =
                new ShardProxyProducer(shardRoot, paths, client, createModificationFactory(paths));
        producers.add(ret);
        return ret;
    }

      DistributedShardFrontend(final DistributedDataStoreInterface distributedDataStore,
                             final DataStoreClient client,
                             final DOMDataTreeIdentifier shardRoot);

}