StackStorm / StackStorm/st2

Orquesta design: task failures in branches

Open
#5,054 11 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement status:under discussion workflows: orquesta
Dominant language
Python
Stars
6.5k
Forks
787
PR merge metrics
No merged PRs in 30d

Description

This is a continuation of https://github.com/StackStorm/st2/issues/5031

Currently Orquesta's design for failures in branches is to terminate the whole workflow as soon as possible once one branch finishes in a failure (in case if one branch finishes with success, the engine will keep other branches running). To me, it's a huge drawback and it's not consistent with mistral's behavior from which we're supposed to migrate. Also, it's counter-intuitive as you expect the branches running in parallel to be independent from each other.

However, I understand there could be circumstances where you'd want to terminate your workflow entirely if one of the tasks in some branch fails. It's probably a good thing to have as an option, so maybe having a special transition named terminate or something like that would be a good choice here.

I invite all concerned parties to discuss this topic and encourage everyone to chime in.

P.S. It reminded me of the time when mistral did not have the publish-on-error feature, where I'd have to handle all failed tasks with additional core.noop tasks to publish what error happened exactly so that it would be available in the final output...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked issue #5031 and the discussion of Orquesta's branch-failure behavior; no files or tests are identified here. Review how parallel branches currently terminate and compare it with Mistral's behavior, then seek agreement on whether an explicit terminate transition or another option is required.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.