public void bulk_insert_sharded(string databaseName1, string databaseName2) { var server1 = GetNewServer(8079); var server2 = GetNewServer(8078); var shards = new Dictionary<string, IDocumentStore> { {"Shard1", new DocumentStore {Url = server1.Configuration.ServerUrl, DefaultDatabase = databaseName1}}, {"Shard2", new DocumentStore {Url = server2.Configuration.ServerUrl, DefaultDatabase = databaseName2}} }; var shardStrategy = new ShardStrategy(shards); shardStrategy.ShardingOn<Profile>(x => x.Location); using (var shardedDocumentStore = new ShardedDocumentStore(shardStrategy)) { shardedDocumentStore.Initialize(); var entity1 = new Profile {Id = "bulk1", Name = "Hila", Location = "Shard1"}; var entity2 = new Profile {Name = "Jay", Location = "Shard2"}; var entity3 = new Profile {Name = "Jay", Location = "Shard1"}; using (var bulkInsert = shardedDocumentStore.ShardedBulkInsert()) { bulkInsert.Store(entity1); bulkInsert.Store(entity2); bulkInsert.Store(entity3); } } using (var store1 = new DocumentStore { Url = server1.SystemDatabase.Configuration.ServerUrl, DefaultDatabase = databaseName1 }.Initialize()) { using (var session = store1.OpenSession()) { var docs = session.Load<Profile>("Shard1/bulk1"); Assert.Equal("Shard1", docs.Location); var docs2 = session.Load<Profile>("Shard1/profiles/2"); Assert.Equal("Shard1", docs2.Location); var totalDocs = session.Query<Profile>() .Customize(x => x.WaitForNonStaleResults()) .ToList(); Assert.Equal(2, totalDocs.Count); } } using (var store2 = new DocumentStore { Url = server2.SystemDatabase.Configuration.ServerUrl, DefaultDatabase = databaseName2 }.Initialize()) { using (var session = store2.OpenSession()) { var docs = session.Load<Profile>("Shard2/profiles/1"); Assert.Equal("Shard2", docs.Location); var totalDocs = session.Query<Profile>() .Customize(x => x.WaitForNonStaleResults()) .ToList(); Assert.Equal(1, totalDocs.Count); } } }