← Belső rendszer fejlesztők adatlapja
Nézd meg, miben segít
Elágazó munkafolyamatok
Meghatározza a feltételes és párhuzamos ágak indulását, befejezését és összevonását végtelen várakozás vagy kimenetfelülírás nélkül.
branching-parallelism-joins
Ezt a skillt használó csapattagok
Mikor hasznos?
Akkor használd, ha opcionális ágak, egyszerre futó lépések vagy tisztázatlan összevonási feltételek vannak a munkafolyamatban.
Miben segít neked?
- Megkülönbözteti a kizáró, többágú és párhuzamos elágazást.
- Csak az elágazásnál ténylegesen aktivált ágakra vár.
- Elkülöníti az ágak kimenetét, meghatározza az összevonást és hibakezelést.
Például ezt kérheted
Készíts jóváhagyási elágazást, ahol a kihagyott jogi ellenőrzés nem blokkol. Futtass kis és nagy értékű kérést. Az első a pénzügy után továbblép, a második minden ténylegesen aktivált ág eredményére vár.
Részletes dokumentáció
Itt a skill eredeti útmutatóját, példáit és ellenőrzési szempontjait olvashatod az eredeti nyelven.
Összecsukás
Branching, Parallelism & Joins
Use this skill when designing or implementing decision nodes, multi-branch conditions, parallel fan-out/fan-in (AND/OR), dead-path elimination, and branch data merging in workflows.
Explicit Split Semantics (Van der Aalst Control-Flow Patterns)
Never leave branching behavior implicit. Every split node must declare its exact evaluation mode:
- Exclusive Choice (
XOR-Split/Switch/If-Else):- Evaluates ordered conditions deterministically (e.g., top-to-bottom priority) and activates exactly one outgoing branch.
- Always require or explicitly define a
default/elsebranch so an unmatched condition never leaves a run silently stuck with zero active tokens.
- Parallel Split (
AND-Split/Fork):- Activates all outgoing branches concurrently, giving each branch an isolated execution context.
- Multi-Choice (
OR-Split/ Inclusive Split):- Evaluates predicates for each outgoing port and activates the non-empty subset of branches whose predicates evaluate to
true(falling back to a declared default branch if none match).
- Evaluates predicates for each outgoing port and activates the non-empty subset of branches whose predicates evaluate to
Explicit Join Synchronization & Dead-Path Elimination (DPE)
A downstream join node must never guess how many incoming branches it should wait for:
- Simple Merge (
XOR-Join): Expects exactly one incoming branch from a mutually exclusive split; mark unchosen sibling branches asskipped. - Synchronizing
AND-Join(Wait All): Waits until every incoming branch reachessucceeded(or aborts/fails according to the declared failure policy:fail_fastvs.wait_all_then_report). - Synchronizing
OR-Join+ Dead-Path Elimination:- When an upstream
XOR-SplitorOR-Splitdoes not choose branch $B$, propagate askipped(dead-path) status down $B$ so downstreamOR-Joinnodes wait only for the branches that were actually activated, preventing permanent deadlocks.
- When an upstream
- First-Completed / Discriminator (
Wait Any / N-of-M):- Advances as soon as $K$ branches succeed, and explicitly cancels or marks the remaining in-flight sibling branches according to configuration.
Branch Output Scoping & Conflict-Free Merging
- Namespace step outputs by
nodeId(steps[nodeId].output) or require an explicit merge mapping at the join node so parallel branches never overwrite shared mutable variables through race conditions.
Checklist
- Does every conditional split define deterministic evaluation order and an explicit
default/elsepath? - Does every join node explicitly specify
XOR(one),AND(all active), orN-of-Msynchronization plus failure behavior? - Does Dead-Path Elimination mark unchosen branches
skippedso downstream joins never deadlock waiting for them? - Are parallel branch outputs isolated by
nodeIdor merged deterministically without shared-variable races?
Csomagban lévő fájlok 1
SKILL.md
