Passer au contenu
← Tous les termes

Événement de signal

Un événement marqué d'un triangle qui diffuse ou rattrape un signal nommé — un message fire-and-anyone-catches.

Ce que fait un événement de signal

Un événement de signal est un cercle avec un marqueur triangle. Un événement de signal *qui lève* diffuse un signal nommé ; un événement de signal *qui rattrape* attend ce signal. Contrairement à un message — qui a exactement un destinataire — un signal est fire-and-anyone-catches : toute instance de processus (dans n'importe quel processus, dans n'importe quelle piscine) en attente d'un événement de signal rattrapeur portant le même nom va réagir.

Les signaux sont l'équivalent BPMN d'un bus d'événements en architecture logicielle. C'est la façon de modéliser « quand cela arrive, tous ceux qui s'y intéressent le savent » sans lister chaque destinataire explicitement. Un message vous obligerait à dessiner un flux de message par destinataire ; un signal permet à un seul événement d'atteindre tous.

Quand un signal l'emporte sur un message

  • Annonces à l'échelle de l'entreprise — « produit lancé », « acquisition finalisée », « incident déclaré ». Tout processus à l'écoute réagit.
  • Patterns pub/sub — plusieurs écouteurs, un émetteur, et l'émetteur n'a pas besoin de savoir qui écoute.
  • Coordination cross-processus — un signal déclenché dans le processus A est rattrapé par B et C sans dessiner de flux de message explicite entre eux.
  • Annulation diffusée — un signal arrête-tout tue chaque instance en attente. Utile pour « stopper toute activité, urgence ».

Les événements de signal dans LucidFlow

LucidFlow émet des événements de signal quand le document source décrit des notifications un-vers-plusieurs (« annoncer à toutes les équipes », « notifier toute l'organisation »). Chaque signal reçoit un nom canonique dérivé du déclencheur ; les événements rattrapeurs correspondants dans différents diagrammes partagent ce nom et donc la même sémantique de broadcast dans le XML exporté. Le tableau de bord des coûts ne multiplie pas le coût du signal par le nombre d'écouteurs — c'est une propriété logique du broadcast, pas physique — mais la durée de chaque instance rattrapée est suivie séparément.

Questions fréquentes

Quelle est la différence entre un signal et un message ?

Un message a un émetteur et un destinataire — communication point à point entre piscines. Un signal est diffusé — un émetteur, autant d'écouteurs que souhaité, aucun flux de message nécessaire. Marqueurs différents (enveloppe vs triangle), sémantique d'exécution différente.

Un signal peut-il être filtré ?

Par son nom. Les signaux sont appariés sur leur `signalRef` — un événement rattrapeur ne réagit qu'aux signaux levés portant la même référence. Il n'y a pas de portée ou de contrôle d'accès natif : les conventions de nommage deviennent donc importantes.

Les signaux traversent-ils les frontières de piscines ?

Oui. Contrairement aux flux de séquence (internes à la piscine) et aux flux de message (piscine à piscine, point à point), les signaux sont globaux. Toute instance rattrapée dans n'importe quelle piscine peut réagir à un signal levé correspondant.

Termes liés

← Retour au glossaire complet