# Advice about project architecture

**URL:** <https://discuss.elastic.co/t/advice-about-project-architecture/65535>\
**Category:** Elasticsearch\
**Created:** [November 9, 2016, 6:07pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535 "2016-11-09T18:07:32Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ebuildy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ebuildy/32/6070_2.png) [@ebuildy](https://discuss.elastic.co/u/ebuildy)\
**Post date:** [November 9, 2016, 6:07pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/1 "2016-11-09T18:07:32Z")

</div>

Hello guys, just wondering some best practices.

I have a news web site, on 6 languages, 7 daily indices for each, 10/20Go per index, 1 million search for all per day.

I would like to separate each language, is it good to:

1. Create 6 clusters with 3 master node, 3 data nodes, and have X tribe nodes as client node to query all.
2. 1 big cluster, 3 master nodes, 18 data nodes with shard allocation per node per language and X client nodes

?

I am a bit confuse of the tribe node usage.

Thanks you,

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [November 9, 2016, 7:47pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/2 "2016-11-09T19:47:15Z")

</div>

> [@ebuildy](#):
>
> 1. 1 big cluster, 3 master nodes, 18 data nodes with shard allocation per node per language and X client nodes

7 daily indices isn't too many. I'd go with option 2. Are you indexing the news or logs or something? If logs then I don't think you need an index per language. You might do better putting them all in one. If you are indexing the news, well, then you might want an index per language, that is up to you, but it is more likely than if it is logs.

You should also have a look at the [rollover](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html) and [shrink](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html) APIs, they might make more sense then using daily indices, especially if you want an index per language and the languages very in ingest rate.

---

<div class="post-metadata">

**Author:** ![ebuildy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ebuildy/32/6070_2.png) [@ebuildy](https://discuss.elastic.co/u/ebuildy)\
**Post date:** [November 11, 2016, 10:16am UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/3 "2016-11-11T10:16:11Z")

</div>

Thanks you nik.

Any experience with tribe nodes? I don't know what they are good for or not.

BTW, very interesting post about rollover ([https://www.elastic.co/blog/managing-time-based-indices-efficiently](https://www.elastic.co/blog/managing-time-based-indices-efficiently)) thanks you to introduce me this new ES feature nik!

So it seems a good practice to have a single big cluster, with differente "node groups" (via routing stuff) ?

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [November 11, 2016, 2:36pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/4 "2016-11-11T14:36:28Z")

</div>

> [@ebuildy](#):
>
> Any experience with tribe nodes? I don't know what they are good for or not.

Personally I don't have any but I know they need to stay on the same version as all nodes which I'm not a fan of.

> [@ebuildy](#):
>
> So it seems a good practice to have a single big cluster, with differente "node groups" (via routing stuff) ?

Up to a point, yes. Once you start getting to many dozens of nodes you start to wish you had multiple clusters. It is a thing we've been thinking about lately. Ways to make that nicer.

But if you are running less than 50 nodes you aren't likely to notice anything. Eventually (how many nodes, I don't know, it depends on lots of stuff, I guess) you'll start to see things like adding fields and moving shards from node to node take longer than it should.

---

<div class="post-metadata">

**Author:** ![ebuildy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ebuildy/32/6070_2.png) [@ebuildy](https://discuss.elastic.co/u/ebuildy)\
**Post date:** [November 11, 2016, 8:33pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/5 "2016-11-11T20:33:28Z")

</div>

Thanks you again, I prefer to go for a single cluster with routing, but my colleagues prefer a cluster per langue to avoid "blast radius" of a crash (I found that stupid but ...).

So I am looking for good reason to not use a such architecture.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [December 9, 2016, 8:33pm UTC](https://discuss.elastic.co/t/advice-about-project-architecture/65535/6 "2016-12-09T20:33:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
