Routage et décisions
Les nodes de routage rendent une bifurcation explicite dans le graphe : ils choisissent une continuation, tandis que les données et décisions qui justifient ce choix restent disponibles comme contrats distincts.
Une décision choisit une route
Une route représente une continuation possible du graphe. Lorsqu’un router s’exécute, une seule route sélectionnée devient active pour cette exécution du node. Les autres branches ne sont pas considérées comme exécutées.
Le routage ne modifie pas à lui seul le modèle métier. Un check_if peut décider qu’un montant dépasse un seuil, mais c’est le node exécuté dans la branche choisie qui produit ensuite l’effet métier — demander une approbation, refuser une opération, créer un objet ou appeler une extension.
Lire un branchement dans le graphe
Le router choisit une seule branche. Après convergence, seules les données garanties sur tous les chemins peuvent être considérées comme toujours disponibles.
Nodes disponibles
| Node | Usage | Comportement |
|---|---|---|
check_if | Conditions structurées sur un objet typé | Deux routes fixes : True / False. Les conditions utilisent le même éditeur que les filtres de collection. |
route_value | Router une valeur typée | Les routes correspondent aux valeurs configurées dans le node. |
route_expression | Router le résultat scalaire d’une expression | Pour une décision calculée qui doit rester explicite dans le graphe. |
evaluate_decision | Évaluer une politique métier versionnée | Entrées, sorties et routes sont dérivées du contrat de la Decision sélectionnée. |
Le catalogue des nodes Core donne le contrat détaillé de chaque primitive.
Routes et sorties sont deux contrats différents
check_if produit surtout une route true ou false. À l’inverse,evaluate_decision peut exposer des sorties typées en plus de la route sélectionnée, parce que ces données appartiennent au contrat de la Decision versionnée.
| Élément | Rôle | Exemple |
|---|---|---|
| Route | Choisit l’arête sortante qui devient active. | approved, rejected, true. |
| Sortie | Produit une donnée typée réutilisable par les nodes suivants. | Score, plafond calculé, motif structuré. |
| Donnée amont | Reste disponible selon les règles normales de binding et d’ancêtres. | La facture ou l’entreprise qui a été testé. |

Convergence : ne supposez pas qu’une branche a été exécutée
Après la convergence de deux branches, la sortie d’un node présent uniquement dans la route A n’est pas un ancêtre garanti du node commun. L’éditeur et le modèle de bindings utilisent la structure du graphe pour empêcher de traiter comme certaine une valeur qui n’existe que sur certains chemins.
Choisir le bon node
check_if— une ou plusieurs conditions lisibles sur un objet connu.route_value— une valeur déjà disponible correspond directement aux branches souhaitées.route_expression— la valeur de routage doit être calculée, mais ne justifie pas un artefact Decision autonome.evaluate_decision— la politique mérite son propre contrat, ses révisions, ses tests et sa trace d’évaluation.
Une expression est utile pour calculer une valeur ; elle ne doit pas rendre invisible une politique métier qui gagnerait à être nommée, versionnée et testée comme Decision.