context.call()
and context.invoke()
steps are exceptions to this approach.
The context.call send a request to a external address, and context.invoke triggers a new workflow run.
Because they are not bound to calling workflow run’s environment, we allow to configure separately.
However, in some cases you might want to use an third party SDK inside a step and want to throttle that specific step instead of thorttling all the steps of workflow run.
Recommended way for throttling is passing a flow-control configuration when triggering the workflow run.
But it means all the steps of that workflow run will share the same config.
For example, parallelism=5 means 5 step can be active with the same flow control key.
This might dramatically decrease the thoroguhput if one of the steps require very low parallelism.
A workaround is to move step to a separate workflow and use context.invoke
to run it with a specific configuration.