# Creating custom rivers

**URL:** <https://discuss.elastic.co/t/creating-custom-rivers/3433>\
**Category:** Elasticsearch\
**Created:** [October 11, 2010, 10:59pm UTC](https://discuss.elastic.co/t/creating-custom-rivers/3433 "2010-10-11T22:59:21Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Owen\_Butler\_2](https://avatars.discourse-cdn.com/v4/letter/o/b19c9b/32.png) [@Owen\_Butler\_2](https://discuss.elastic.co/u/Owen_Butler_2)\
**Post date:** [October 11, 2010, 10:59pm UTC](https://discuss.elastic.co/t/creating-custom-rivers/3433/1 "2010-10-11T22:59:21Z")

</div>

Hi,

Is it possible to create custom rivers of our own? I've a situation where a  
river makes sense, but I need to touch two external datasources. I've read  
through the river doco here:

> **[The River
	  	 | Elastic](https://www.elastic.co/blog/the-river)**
>
> One of the problems elasticsearch aims at solving is “the river” problem. The River is the stream of constant data and somehow finding a way to waddle through it and make something meaningful out of i...

Searched the mailing list for other people creating custom rivers and  
couldn't find any references.

I've had a browse through the source and binary distro's. I can see that  
the three current river plugins are included in the jar, but can't work out  
how they are configured/included.

If I could somehow create my own river plugin, what would be the recommended  
approach to including/running it inside my elastic cluster?

Any advice would be welcome.

Regards,

Owen Butler

---

<div class="post-metadata">

**Author:** ![Mahendra\_M](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mahendra_m/32/3128_2.png) [@Mahendra\_M](https://discuss.elastic.co/u/Mahendra_M)\
**Post date:** [October 12, 2010, 6:44am UTC](https://discuss.elastic.co/t/creating-custom-rivers/3433/2 "2010-10-12T06:44:35Z")

</div>

Hi Owen

On Tue, Oct 12, 2010 at 4:29 AM, Owen Butler wrote:

> Is it possible to create custom rivers of our own?

Yes, i guess it is possible in elasticsearch. I had gone through the  
CouchDB river code and it looks pretty easy to make a new one.

> I've a situation where a  
> river makes sense, but I need to touch two external datasources.

Can you explain a bit about "two external data-sources" ? Do you mean

- for a single index, you want to index data using two rivers, each  
accessing two separate data sources ?

> I've had a browse through the source and binary distro's. I can see that  
> the three current river plugins are included in the jar, but can't work out  
> how they are configured/included.

An example of how to configure a CouchDB river is given here:

> **[GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search...](https://github.com/elastic/elasticsearch)**
>
> Free and Open, Distributed, RESTful Search Engine. Contribute to elastic/elasticsearch development by creating an account on GitHub.

> If I could somehow create my own river plugin, what would be the recommended  
> approach to including/running it inside my elastic cluster?

It would be best to use one of the existing river plugins as a  
starting point and start building up your own plug-in. Personally, I  
would recommend the CouchDB river plugin as a starting point 🙂

Regards,  
Mahendra

[http://twitter.com/mahendra](http://twitter.com/mahendra)

---

<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:18am UTC](https://discuss.elastic.co/t/creating-custom-rivers/3433/3 "2017-07-06T04:18:06Z")

</div>


