# ES network architecture

**URL:** <https://discuss.elastic.co/t/es-network-architecture/87646>\
**Category:** Elasticsearch\
**Created:** [May 30, 2017, 10:32pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646 "2017-05-30T22:32:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ES\_SIL](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@ES\_SIL](https://discuss.elastic.co/u/ES_SIL)\
**Post date:** [May 30, 2017, 10:32pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/1 "2017-05-30T22:32:43Z")

</div>

Hi all,

We are exploring ES in our stack. I was looking around for some good architecture diagrams which shows internals of ES like how Netty is used by ES, which protocols needs to be configured and enabled for making cluster work(multicast, unicast), which protocols gets utilized at different layers(application(i guess ES uses Native Elasticsearch binary protocol), network ,etc). I know details of how ES works like sharing indexing, pipelines etc in details, all i am missing more of network level architecture details. Also, i don't think ES runs on any server(like tomcat, wildly etc), it runs as a standalone application ?

Any pointers with above information would be helpful.

Thanks in advance.  
SI

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 31, 2017, 12:34am UTC](https://discuss.elastic.co/t/es-network-architecture/87646/2 "2017-05-31T00:34:23Z")

</div>

That's not anything we have unfortunately.

What is used is;

- TCP 9200-9299 for HTTP
- TCP 9300-9399 for Transport

We don't really suggest the use of multicast any more.

> [@ES\_SIL](#):
>
> Also, i don't think ES runs on any server(like tomcat, wildly etc), it runs as a standalone application ?

It is standalone. We do not support embedded instances.

---

<div class="post-metadata">

**Author:** ![ES\_SIL](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@ES\_SIL](https://discuss.elastic.co/u/ES_SIL)\
**Post date:** [May 31, 2017, 7:33pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/3 "2017-05-31T19:33:34Z")

</div>

Thanks for the reply...

> [@warkolm](#):
>
> That's not anything we have unfortunately.

Are there any plans ?

> [@warkolm](#):
>
> We don't really suggest the use of multicast any more.

For unicast, i just need to provide of any reachable node in the cluster and then it auto discovers others right ?

SI

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [May 31, 2017, 8:42pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/4 "2017-05-31T20:42:07Z")

</div>

> [@ES\_SIL](#):
>
> Are there any plans ?

If it's something you want then raising a feature request is the best option.

> [@ES\_SIL](#):
>
> For unicast, i just need to provide of any reachable node in the cluster and then it auto discovers others right ?

You need a seed list, not all the nodes.

---

<div class="post-metadata">

**Author:** ![ES\_SIL](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@ES\_SIL](https://discuss.elastic.co/u/ES_SIL)\
**Post date:** [June 1, 2017, 9:22pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/5 "2017-06-01T21:22:34Z")

</div>

> [@warkolm](#):
>
> You need a seed list, not all the nodes.

Sorry, what do you mean by seed list ?

Regards,  
SI

---

<div class="post-metadata">

**Author:** ![rcowart](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rcowart/32/88091_2.png) [@rcowart](https://discuss.elastic.co/u/rcowart)\
**Post date:** [June 4, 2017, 5:58am UTC](https://discuss.elastic.co/t/es-network-architecture/87646/6 "2017-06-04T05:58:28Z")

</div>

A "seed list" is used to "seed" (provide a starting point) for the discovery process. You don't need to list all of the nodes in the cluster, just a few from which the starting node can learn about all of the other nodes.

In a larger cluster the best practice is to have three master nodes. The practice I have adopted is to seed each master node with the other two master nodes, and to seed all other nodes with at least two, but usually all three masters.

---

<div class="post-metadata">

**Author:** ![ES\_SIL](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@ES\_SIL](https://discuss.elastic.co/u/ES_SIL)\
**Post date:** [June 5, 2017, 5:42pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/7 "2017-06-05T17:42:23Z")

</div>

Thanks @rcowart .

---

<div class="post-metadata">

**Author:** ![ES\_SIL](https://avatars.discourse-cdn.com/v4/letter/e/b38774/32.png) [@ES\_SIL](https://discuss.elastic.co/u/ES_SIL)\
**Post date:** [June 5, 2017, 5:46pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/8 "2017-06-05T17:46:33Z")

</div>

> [@warkolm](#):
>
> If it's something you want then raising a feature request is the best option.

I raised the Feature request, but they closed it and mentioned about discussing it here. Not sure what to do now. [Here](https://github.com/elastic/elasticsearch/issues/25012) is the link for the feature request.

---

<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:** [July 3, 2017, 5:46pm UTC](https://discuss.elastic.co/t/es-network-architecture/87646/9 "2017-07-03T17:46:34Z")

</div>

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