# What is the alternatives to NodeClient(NodeBuilder)

**URL:** <https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926>\
**Category:** Elasticsearch\
**Created:** [August 4, 2017, 4:45pm UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926 "2017-08-04T16:45:57Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![itplayer](https://avatars.discourse-cdn.com/v4/letter/i/d26b3c/32.png) [@itplayer](https://discuss.elastic.co/u/itplayer)\
**Post date:** [August 4, 2017, 4:45pm UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/1 "2017-08-04T16:45:58Z")

</div>

We try to move our ES from 1.7 to 5.4 and I found this article  
[https://www.elastic.co/blog/elasticsearch-the-server](https://www.elastic.co/blog/elasticsearch-the-server)

It seems to me we cannot use Embedded Elasticsearch anymore like what we used to start our application and build a NodeClient and join the cluster to  
#1. reduce network hop  
#2. give a name to this node client so that we can identify which application is connecting to the cluster.

Do we have alternatives to do the same thing?  
What is the performance impact if we don't have NodeClient and use the alternatives?  
I found this article, to use TransportClient as a coordinate node.  
[https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.4/client-connected-to-client-node.html](https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.4/client-connected-to-client-node.html)

Or use Java REST Client. (Is this some kind of java wrapper to call plain ES http rest api?)

Looking forward your input.  
Thanks.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [August 5, 2017, 9:14pm UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/2 "2017-08-05T21:14:26Z")

</div>

The article about using TransportClient alongside the Client Node is the way to go if you want to have autodiscovery and such.  
But if you know for sure some of the addresses of some nodes, then you can directly use the TransportClient.

Or better, start to use the Rest Client. It's a low level one but 5.6.0 will come with a high level one.  
I started to use it and it's really great.

---

<div class="post-metadata">

**Author:** ![itplayer](https://avatars.discourse-cdn.com/v4/letter/i/d26b3c/32.png) [@itplayer](https://discuss.elastic.co/u/itplayer)\
**Post date:** [August 7, 2017, 3:29am UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/3 "2017-08-07T03:29:52Z")

</div>

Thanks @dadoonet  
So you as your recommendation we should use Rest Client  
[https://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.4/\_license.html](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.4/_license.html)

But what do you mean

> It’s a low level one but 5.6.0 will come with a high level one.

If I'm going to move to 5.6, should I change to use that high level one?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [August 7, 2017, 6:56am UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/4 "2017-08-07T06:56:07Z")

</div>

If the low level works for you and is enough, then just use the low level.

---

<div class="post-metadata">

**Author:** ![itplayer](https://avatars.discourse-cdn.com/v4/letter/i/d26b3c/32.png) [@itplayer](https://discuss.elastic.co/u/itplayer)\
**Post date:** [August 24, 2017, 5:34am UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/5 "2017-08-24T05:34:15Z")

</div>

So we don't have Node Client in the future (or we don't have now from 5.0)?  
I mean we can never start an embedded node in our application right?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [August 24, 2017, 7:44am UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/6 "2017-08-24T07:44:39Z")

</div>

Just quoting the blog post:

> Some users run Elasticsearch as embedded. We are not going to stop them from doing so, but we cannot support it.

---

<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:** [September 21, 2017, 7:44am UTC](https://discuss.elastic.co/t/what-is-the-alternatives-to-nodeclient-nodebuilder/95926/7 "2017-09-21T07:44:50Z")

</div>

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