# Pipeline-pipeline communication question

**URL:** <https://discuss.elastic.co/t/pipeline-pipeline-communication-question/138106>\
**Category:** Logstash\
**Created:** [July 2, 2018, 12:12am UTC](https://discuss.elastic.co/t/pipeline-pipeline-communication-question/138106 "2018-07-02T00:12:09Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rocknroll](https://avatars.discourse-cdn.com/v4/letter/r/c6cbf5/32.png) [@rocknroll](https://discuss.elastic.co/u/rocknroll)\
**Post date:** [July 2, 2018, 12:12am UTC](https://discuss.elastic.co/t/pipeline-pipeline-communication-question/138106/1 "2018-07-02T00:12:09Z")

</div>

The documentation states "If you change the ensure\_delivery flag to false, an unavailable downstream pipeline causes the sent message to be discarded. Use ensure\_delivery =\> false when you want the ability to temporarily disable a downstream pipeline without the upstream one waiting for it."

This is exactly the behavior we want, i.e. we want the upstream pipeline to always process events regardless of the success or failure of the downstream pipeline. However the next comment in the documentation has me puzzled : "A blocked downstream pipeline blocks the sending output/pipeline regardless of the value of the ensure\_delivery flag."

That seems to contradict the previous sentence, or am I just not understanding this correctly?

---

<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 30, 2018, 12:12am UTC](https://discuss.elastic.co/t/pipeline-pipeline-communication-question/138106/2 "2018-07-30T00:12:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![colinsurprenant](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/colinsurprenant/32/14776_2.png) [@colinsurprenant](https://discuss.elastic.co/u/colinsurprenant)\
**Post date:** [February 13, 2019, 4:27pm UTC](https://discuss.elastic.co/t/pipeline-pipeline-communication-question/138106/3 "2019-02-13T16:27:58Z")

</div>

Late reply here, but can be useful if someone else also search about this.

The `ensure_delivery` option is really meant for when a destination pipeline is unavailable to receive events, for example if it is reloading. It is **not** meant to control the back pressure behaviour where a destination pipeline is blocked, in which case, the source pipeline will also always block trying to push events regardless of `ensure_delivery`.

One way to mitigate this is to enable PQ on the destination pipeline which will insure it will never block receiving events, unless its PQ also becomes full, which is tunable.

I agree the documentation is confusing for this. I will followup to improve that.

Colin
