# Standalone vs embedded instances

**URL:** <https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711>\
**Category:** Elasticsearch\
**Created:** [June 27, 2011, 12:22am UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711 "2011-06-27T00:22:02Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Remy\_Gendron](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/remy_gendron/32/2719_2.png) [@Remy\_Gendron](https://discuss.elastic.co/u/Remy_Gendron)\
**Post date:** [June 27, 2011, 12:22am UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711/1 "2011-06-27T00:22:02Z")

</div>

Hi all,

We are using ES for all our reads, including resolving relations  
between entities. Updates go into MySQL first and if the transaction  
commits, we replicate the data to ES.

Assuming 90% reads and 10% writes, our app is mainly ES bound. We have  
chosen to run ES embedded instead of using a standalone ES cluster.  
Each of our app nodes is also an ES node. This makes it that our unit  
testing setup is exactly the same as our production setup. Both use  
embedded ES.

Is there something we should know that could make running these  
embedded ES less production ready or less scalable than running a  
dedicated cluster?

Thanks!

---

<div class="post-metadata">

**Author:** ![Lukas\_Vlcek1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukas_vlcek1/32/819_2.png) [@Lukas\_Vlcek1](https://discuss.elastic.co/u/Lukas_Vlcek1)\
**Post date:** [June 27, 2011, 8:56am UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711/2 "2011-06-27T08:56:22Z")

</div>

Hi,

IMHO it is better to run ES as a standalone process. I am not 100% sure from  
the top of my head but running embedded ES means that it shares the same JVM  
with other processes (like Tomcat for example if you embed ES into web app)  
which makes it more difficult to fine tune. Also bringing down your  
application brings down ES too (is that what you really want, does upgrade  
to your app means that ES has to go down too? And if you want to upgrade to  
a new version of ES in the future does it mean you also want to shutdown  
your app?).

Regards,  
Lukas

On Mon, Jun 27, 2011 at 2:22 AM, Remy Gendron [remy@arrova.ca](mailto:remy@arrova.ca) wrote:

> Hi all,
> 
> We are using ES for all our reads, including resolving relations  
> between entities. Updates go into MySQL first and if the transaction  
> commits, we replicate the data to ES.
> 
> Assuming 90% reads and 10% writes, our app is mainly ES bound. We have  
> chosen to run ES embedded instead of using a standalone ES cluster.  
> Each of our app nodes is also an ES node. This makes it that our unit  
> testing setup is exactly the same as our production setup. Both use  
> embedded ES.
> 
> Is there something we should know that could make running these  
> embedded ES less production ready or less scalable than running a  
> dedicated cluster?
> 
> Thanks!

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [June 27, 2011, 9:32pm UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711/3 "2011-06-27T21:32:19Z")

</div>

As long as they form the same cluster, then there isn't a difference compared to running a dedicated elasticsearch cluster. But, as Lukas noted, you now have more moving parts when it comes to fine tuning the JVM and understanding what can lead to problems.

On Monday, June 27, 2011 at 11:56 AM, Lukáš Vlček wrote:

> Hi,
> 
> IMHO it is better to run ES as a standalone process. I am not 100% sure from the top of my head but running embedded ES means that it shares the same JVM with other processes (like Tomcat for example if you embed ES into web app) which makes it more difficult to fine tune. Also bringing down your application brings down ES too (is that what you really want, does upgrade to your app means that ES has to go down too? And if you want to upgrade to a new version of ES in the future does it mean you also want to shutdown your app?).
> 
> Regards,  
> Lukas
> 
> On Mon, Jun 27, 2011 at 2:22 AM, Remy Gendron \<remy@arrova.ca ([mailto:remy@arrova.ca](mailto:remy@arrova.ca))\> wrote:
> 
> > Hi all,
> > 
> > We are using ES for all our reads, including resolving relations  
> > between entities. Updates go into MySQL first and if the transaction  
> > commits, we replicate the data to ES.
> > 
> > Assuming 90% reads and 10% writes, our app is mainly ES bound. We have  
> > chosen to run ES embedded instead of using a standalone ES cluster.  
> > Each of our app nodes is also an ES node. This makes it that our unit  
> > testing setup is exactly the same as our production setup. Both use  
> > embedded ES.
> > 
> > Is there something we should know that could make running these  
> > embedded ES less production ready or less scalable than running a  
> > dedicated cluster?
> > 
> > Thanks!

---

<div class="post-metadata">

**Author:** ![Remy\_Gendron](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/remy_gendron/32/2719_2.png) [@Remy\_Gendron](https://discuss.elastic.co/u/Remy_Gendron)\
**Post date:** [June 28, 2011, 2:18am UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711/4 "2011-06-28T02:18:29Z")

</div>

Thank you both. As we are mostly in beta stage, we are willing to live  
with the process coupling for now in exchange for the reduced  
deployment complexity. It's great to know the embedded mode is not  
just for unit testing.

Thanks again Shay, we find that ES is such a great asset to our  
project.

On Jun 27, 5:32 pm, Shay Banon [shay.ba...@elasticsearch.com](mailto:shay.ba...@elasticsearch.com) wrote:

> As long as they form the same cluster, then there isn't a difference compared to running a dedicated elasticsearch cluster. But, as Lukas noted, you now have more moving parts when it comes to fine tuning the JVM and understanding what can lead to problems.
> 
> On Monday, June 27, 2011 at 11:56 AM, Lukáš Vlček wrote:
> 
> > Hi,
> 
> > IMHO it is better to run ES as a standalone process. I am not 100% sure from the top of my head but running embedded ES means that it shares the same JVM with other processes (like Tomcat for example if you embed ES into web app) which makes it more difficult to fine tune. Also bringing down your application brings down ES too (is that what you really want, does upgrade to your app means that ES has to go down too? And if you want to upgrade to a new version of ES in the future does it mean you also want to shutdown your app?).
> 
> > Regards,  
> > Lukas
> 
> > On Mon, Jun 27, 2011 at 2:22 AM, Remy Gendron \<r...@arrova.ca ([mailto:r...@arrova.ca](mailto:r...@arrova.ca))\> wrote:
> > 
> > > Hi all,
> 
> > > We are using ES for all our reads, including resolving relations  
> > > between entities. Updates go into MySQL first and if the transaction  
> > > commits, we replicate the data to ES.
> 
> > > Assuming 90% reads and 10% writes, our app is mainly ES bound. We have  
> > > chosen to run ES embedded instead of using a standalone ES cluster.  
> > > Each of our app nodes is also an ES node. This makes it that our unit  
> > > testing setup is exactly the same as our production setup. Both use  
> > > embedded ES.
> 
> > > Is there something we should know that could make running these  
> > > embedded ES less production ready or less scalable than running a  
> > > dedicated cluster?
> 
> > > Thanks!

---

<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 6, 2017, 4:02am UTC](https://discuss.elastic.co/t/standalone-vs-embedded-instances/4711/5 "2017-07-06T04:02:26Z")

</div>


