# Elasticsearch as producer/consumer solution

**URL:** <https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645>\
**Category:** Elasticsearch\
**Created:** [July 17, 2020, 12:55pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645 "2020-07-17T12:55:39Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![invenisso](https://avatars.discourse-cdn.com/v4/letter/i/c89c15/32.png) [@invenisso](https://discuss.elastic.co/u/invenisso)\
**Post date:** [July 17, 2020, 12:55pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645/1 "2020-07-17T12:55:39Z")

</div>

Hello Community!

Is it possible to use Elasticserach in a producer / consumer scenario?  
The producer writes documents to Elasticserach.  
The consumer reads documents from Eleasticserach and processes them.  
The order of the documents must be preserved.

There is a REST API GET operation but the document's \_id must be specified. But the consumer doesn't know the \_id of the document, he wants to just get the next document that came.  
I did not find an API allowing to subscribe for incoming documents.

Any suggestions?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [July 17, 2020, 1:03pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645/2 "2020-07-17T13:03:38Z")

</div>

That sounds like a bad fit. Why are you considering Elasticsearch instead of a message queue?

---

<div class="post-metadata">

**Author:** ![invenisso](https://avatars.discourse-cdn.com/v4/letter/i/c89c15/32.png) [@invenisso](https://discuss.elastic.co/u/invenisso)\
**Post date:** [July 17, 2020, 1:26pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645/3 "2020-07-17T13:26:52Z")

</div>

Because Elasticsearch is also a database that would keep original versions of documents for later use. In contrast, queuing systems (such as RabbitMQ) are for communication only and do not have a database.  
I guess that's a bad idea - but I wonder if it is technically possible to use Elasticserach instead of proper message queueing system.

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [July 17, 2020, 2:53pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645/4 "2020-07-17T14:53:18Z")

</div>

Use Kafka then. It allows you to define retention period. I would not try to build messaging system on Elasticsearch.

---

<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:** [August 14, 2020, 2:53pm UTC](https://discuss.elastic.co/t/elasticsearch-as-producer-consumer-solution/241645/5 "2020-08-14T14:53:21Z")

</div>

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