Gateways
Sturen van beslissingen en parallelle stappen in je proces
Wat doen gateways in Orchestra?
Een gateway gebruik je op het moment dat een proces niet altijd hetzelfde vervolg heeft.
Bijvoorbeeld:
- er moet een keuze gemaakt worden
- meerdere stappen mogen tegelijk lopen
- verschillende routes moeten later weer samenkomen
In Orchestra werkt een gateway altijd samen met sequence flows.
De gateway bepaalt hoe het proces splitst of samenkomt.
De sequence flows bepalen wanneer een pad wordt gevolgd.
Waar zit de logica?
Belangrijk uitgangspunt in Orchestra:
Alle beslislogica staat op de sequence flows, nooit op de gateway zelf.
Dat betekent:
- elke uitgaande sequence flow heeft condities
- de gateway kijkt alleen naar:
- hoeveel paden gevolgd mogen worden
- en wanneer het proces weer verder mag

Conditions op sequence flows
Op een sequence flow stel je één of meerdere conditions in.
Deze conditions worden één keer geëvalueerd, op het moment dat het proces de gateway verlaat.
Wat kan je gebruiken in conditions?
Je kunt alle tags gebruiken die beschikbaar zijn in het datalake, waaronder:
- standaardwaarden (bijv. nu)
- formulierwaarden
- waarden uit eerdere taken
(bijv. output van een API-call) - gegevens uit het dossier (database)
- live data uit externe systemen
Hoe worden meerdere conditions beoordeeld?
- meerdere conditions op één sequence flow
→ allemaal waar = pad mag gevolgd worden - dit gedrag is altijd hetzelfde, ongeacht gatewaytype
Belangrijk: wat als conditions niet kloppen?
Orchestra is hier strikt en voorspelbaar. Indien
- ❌ geen enkel pad is waar
- ❌ of meerdere paden zijn waar terwijl dat niet mag
Dan:
- stopt het proces
- er wordt een fout gemeld in Murphy
Daarom geldt als harde regel:
Alle uitgaande paden moeten een condition hebben en samen sluitend zijn.
De verschillende gateways in Orchestra
Exclusive Gateway (keuze: precies één pad)
Gebruik deze gateway als exact één vervolg mogelijk is.
Wat Orchestra doet:
- alle uitgaande sequence flows worden beoordeeld
- precies één pad moet waar zijn
- zodra dat pad is gekozen, gaat het proces verder
Wat niet mag:
- geen waar pad → fout
- meerdere ware paden → fout
Voorbeeld
- Pad A: bedrag kleiner dan 1.000
- Pad B: bedrag groter of gelijk aan 1.000
Samen sluiten ze elkaar uit → veilig en voorspelbaar.

Inclusive Gateway (keuze: één of meerdere paden)
Gebruik deze gateway als meerdere vervolgstappen tegelijk mogen starten, maar niet altijd allemaal.
Wat Orchestra doet:
- elke sequence flow wordt los beoordeeld
- elk pad waarvan de condition waar is, wordt gestart
- het proces kan dus één, meerdere of alle paden volgen
Voorbeeld
- Pad A: klant wil e-mail ontvangen
- Pad B: klant wil sms ontvangen
- Pad C: klant wil brief ontvangen
Afhankelijk van de invoer kunnen meerdere paden tegelijkertijd gaan lopen.

Parallel Gateway (altijd alles tegelijk)
Gebruik deze gateway als alle vervolgstappen altijd uitgevoerd moeten worden.
Belangrijk om te weten:
- er zijn geen conditions
- alle uitgaande paden worden altijd gestart
- volgorde speelt geen rol
Voorbeeld
- status bijwerken
- logregel schrijven
- notificatie versturen
Allemaal verplicht, allemaal tegelijk.

Praktische ontwerpregels (aanrader)
- Zorg dat conditions samen sluitend zijn
- Maak paden onderling exclusief waar nodig
- Houd conditions leesbaar en eenvoudig
- Test expliciet randgevallen (leeg, null, onverwachte waarden)
- Gebruik Murphy-meldingen actief bij het testen