# Is workflow event history limit affected by SignalExternalWorkflow

**URL:** <https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228>\
**Category:** Community Support\
**Tags:** go-sdk\
**Created:** [March 21, 2022, 2:11pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228 "2022-03-21T14:11:01Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![mvp](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/mvp/32/941_2.png) [@mvp](https://community.temporal.io/u/mvp)\
**Post date:** [March 21, 2022, 2:11pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/1 "2022-03-21T14:11:01Z")

</div>

Hi,

I need to send a signal to several thousand workflows from within a workflow. I see that `SignalExternalWorkflow` can be used for this. But, does signalling several thousand workflows from a single workflow like this contribute to the event history limit?

The docs only talk about hitting event history limit by having too many activities in a single workflow. But what about `SignalExternalWorkflow`?

If it does affect event history limit, do you think creating child workflows just to signal another workflow (no activities in the workflow) would affect performance negatively?

---

<div class="post-metadata">

**Author:** ![tihomir](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/tihomir/32/6580_2.png) [@tihomir](https://community.temporal.io/u/tihomir)\
**Post date:** [March 21, 2022, 3:22pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/3 "2022-03-21T15:22:17Z")

</div>

> [@mvp](#):
>
> does signalling several thousand workflows from a single workflow like this contribute to the event history limit

Yes, each time you send signal to external workflow it is recorded in history as `ExternalWorkflowExecutionSignaled` event.

On the receiving side, receiving signals is also recorded with the `WorkflowExecutionSignaled` event.

Both do count towards the 50K history limit.

> do you think creating child workflows just to signal another workflow

You could partition the problem, let’s say you have 50K signals to send, could start 10 child workflows in parallel, that handle 5K each.

Typically you don’t want your workflow history to get super large, as it could possibly cause some latency issues when full histories are retrieved. Child workflows in that case can be used to partition the history.

---

<div class="post-metadata">

**Author:** ![mvp](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/mvp/32/941_2.png) [@mvp](https://community.temporal.io/u/mvp)\
**Post date:** [March 21, 2022, 4:13pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/5 "2022-03-21T16:13:23Z")

</div>

Thanks @tihomir . I was going to implement the partitioning just like you mentioned, but I didn’t want to go to so much trouble just to call `SignalExternalWorkflow` 🙂 Thanks for the details though.

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [March 21, 2022, 5:05pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/6 "2022-03-21T17:05:49Z")

</div>

What is your use case? There might be other ways to solve your problem.

---

<div class="post-metadata">

**Author:** ![mvp](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/mvp/32/941_2.png) [@mvp](https://community.temporal.io/u/mvp)\
**Post date:** [March 21, 2022, 5:35pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/7 "2022-03-21T17:35:03Z")

</div>

Hi @maxim, I have a scenario where thousands of workflows get created during the day and all of them block on a signal name which is _unique_ to those workflows. Then, at the end of the day, there is a trigger workflow that get’s kicked off which is supposed to unblock all of those earlier workflows by sending a signal which is unique to the workflow it is trying to unblock.

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [March 21, 2022, 6:00pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/8 "2022-03-21T18:00:23Z")

</div>

Sorry, this sounds like a solution, not a use case. What is the reason to use a signal which is unique for each workflow? Why, for example, not use the same signal name and different signal arguments?

---

<div class="post-metadata">

**Author:** ![mvp](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/mvp/32/941_2.png) [@mvp](https://community.temporal.io/u/mvp)\
**Post date:** [March 24, 2022, 3:18pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/9 "2022-03-24T15:18:36Z")

</div>

> What is the reason to use a signal which is unique for each workflow?

I guess I’m just working within some existing constraints. We also have a custom temporal UI which displays workflows blocked on a signal and provides the ability to send a signal to them via the custom temporal UI along with a fixed payload.

> Why, for example, not use the same signal name and different signal arguments?

I’m curious whether this would somehow reduce the number of `SignalExternalWorkflow` calls? Also, is there some sort of a broadcast mechanism for signals?

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [March 24, 2022, 3:43pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/10 "2022-03-24T15:43:16Z")

</div>

There is no broadcast mechanism for signals yet.  
But as I don’t understand the use case I cannot give you options. For example, you could use an activity to signal many workflows without growing the history.

---

<div class="post-metadata">

**Author:** ![mvp](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/mvp/32/941_2.png) [@mvp](https://community.temporal.io/u/mvp)\
**Post date:** [March 24, 2022, 3:52pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/11 "2022-03-24T15:52:53Z")

</div>

> you could use an activity to signal many workflows without growing the history.

Hmm. This looks like an option as well. Do I need to use the temporal client to signal the workflow(s) from within the activity?

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [March 24, 2022, 4:24pm UTC](https://community.temporal.io/t/is-workflow-event-history-limit-affected-by-signalexternalworkflow/4228/12 "2022-03-24T16:24:14Z")

</div>

Yes, the activity has to use the client.
