Aller au contenu

Types d'activité enfichables

Un flux est un graphe de nœuds. La plupart des nœuds exécutent un composant WASM en cours de processus, mais certains nœuds transfèrent le travail à un runtime séparé — SoRLa, OperaLa et (à l’avenir) d’autres — et attendent le résultat. Ce sont des types d’activité : des nœuds de flux natifs dont le rôle est de répartir vers un runtime externe via le bus de messagerie.

Aujourd’hui, la plateforme livre ces types d’activité de répartition :

NœudRépartit versStatut
sorla.callle runtime SoRLaActif
operala.callle runtime OperaLaActif
telco-x.callun runtime telco-xCâblé, inerte jusqu’à ce qu’un runtime existe

Un nœud de répartition n’exécute pas lui-même la logique métier. Il empaquette l’entrée du nœud, publie une requête vers le runtime via NATS, et soit :

  • attend la réponse (le flux est mis en pause et reprend lorsque le résultat arrive), soit
  • lance et oublie (le flux continue immédiatement).

Tous les nœuds de répartition partagent un seul mécanisme — le même contrat requête/réponse et la même gestion de corrélation — de sorte qu’ils se comportent de manière cohérente quel que soit le runtime qu’ils ciblent.

Le générateur de flux du Designer ancre sa palette dans un catalogue de capacités. Chaque type d’activité apparaît dans ce catalogue comme une capacité répartissable, ce qui signifie que le générateur de flux par IA peut placer un nœud sorla.call ou operala.call lorsqu’un utilisateur décrit un travail qui relève de l’un de ces runtimes — de la même manière qu’il place tout autre nœud.

L’objectif de conception est qu’un tout nouveau type d’activité ne coûte presque rien à ajouter :

  1. Une entrée de catalogue dans le catalogue de capacités de référence du Designer, marquée comme capacité de répartition. Cela rend le nœud découvrable par le générateur de flux par IA.
  2. Une ligne dans le runner qui reconnaît le nœud comme une opération de répartition native.

Le runner sait déjà exécuter n’importe quel nœud de répartition de manière générique, donc aucun nouveau code d’exécution n’est nécessaire — le nœud cible simplement un nom de runtime différent. Lorsque ce runtime est déployé plus tard, le nœud auparavant inerte devient actif sans aucune autre modification.