# Does Elastic consider Elasticsearch a (mostly) pure implementation of the SEDA software architecture for Internet servers?

**URL:** <https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941>\
**Category:** Elasticsearch\
**Created:** [April 2, 2019, 8:34am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941 "2019-04-02T08:34:27Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![khyron4eva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/khyron4eva/32/35234_2.png) [@khyron4eva](https://discuss.elastic.co/u/khyron4eva)\
**Post date:** [April 2, 2019, 8:34am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/1 "2019-04-02T08:34:27Z")

</div>

For reference, the original SEDA paper is [here](https://www.mdw.la/papers/mdw-phdthesis.pdf).

My question for any Elastic team members reading (who are deeply intimate with Elasticsearch architecture/internals) is whether Elastic (core developers/company) thinks of Elasticsearch as implementing SEDA? If so, how much does it differ from the core tenets of SEDA? For example, are the thread pools exposed via /\_cat/thread\_pool the same internal queues defined in the SEDA architecture, yes or no? Are there other changes or liberties taken with SEDA due to real world experience? Or does Elasticsearch implement some other model entirely?

Cheers!

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [April 2, 2019, 10:24am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/2 "2019-04-02T10:24:31Z")

</div>

Tricky question to answer. We do not, for instance, refer to the SEDA literature on a daily basis basis, but there are certainly some similarities. The way Elasticsearch use thread pools is indeed one such similarity, although SEDA's thread pools seem to be per-stage and Elasticsearch's are much coarser. It's hard to say whether these similarities are directly because of this research or whether it's a case of convergent evolution.

---

<div class="post-metadata">

**Author:** ![khyron4eva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/khyron4eva/32/35234_2.png) [@khyron4eva](https://discuss.elastic.co/u/khyron4eva)\
**Post date:** [April 2, 2019, 11:27am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/3 "2019-04-02T11:27:53Z")

</div>

@DavidTurner, got it. 10 years on, I completely understand that you wouldn't refer to the literature on a daily basis (or even regularly) but that's also because those decisions have been baked into Elasticsearch over the past decade. They are the fundamental underpinning of how it works at this point, so there's no need to think about the origin story anymore.

Maybe a better question is whether SEDA influenced Shay's initial design decisions around the architecture of Elasticsearch's distributed systems layer? What does Shay himself say or think on the topic?

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [April 2, 2019, 11:55am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/4 "2019-04-02T11:55:58Z")

</div>

> [@khyron4eva](#):
>
> What does Shay himself say or think on the topic?

I will see if I can find out.

---

<div class="post-metadata">

**Author:** ![khyron4eva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/khyron4eva/32/35234_2.png) [@khyron4eva](https://discuss.elastic.co/u/khyron4eva)\
**Post date:** [April 11, 2019, 10:15pm UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/5 "2019-04-11T22:15:00Z")

</div>

Any word yet?

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [April 12, 2019, 7:47am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/6 "2019-04-12T07:47:08Z")

</div>

Not yet; I am hoping for an answer in one of his AMA sessions but there hasn't been one in the week-and-a-bit since you asked your original question.

---

<div class="post-metadata">

**Author:** ![khyron4eva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/khyron4eva/32/35234_2.png) [@khyron4eva](https://discuss.elastic.co/u/khyron4eva)\
**Post date:** [April 30, 2019, 2:04am UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/7 "2019-04-30T02:04:53Z")

</div>

What are the chances of getting an answer, @DavidTurner?

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [May 15, 2019, 7:42pm UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/8 "2019-05-15T19:42:56Z")

</div>

Hey, I bumped into Shay and asked him about this, and the answer wasn't clear-cut. Elasticsearch was definitely never intended to be a pure implementation of a SEDA architecture, but the ideas about performance and scalability, particularly in terms of things like avoiding an expensive thread per request, were fairly pervasive in the industry by the time Elasticsearch was born.

So yes, I think it's fair to say that SEDA had some influence (albeit possibly indirectly) on Elasticsearch's overall shape.

---

<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:** [June 12, 2019, 7:42pm UTC](https://discuss.elastic.co/t/does-elastic-consider-elasticsearch-a-mostly-pure-implementation-of-the-seda-software-architecture-for-internet-servers/174941/9 "2019-06-12T19:42:58Z")

</div>

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