Événements

Chaque action significative dans le cycle de vie d’un workflow génère un événement : démarrage du workflow, planification d’une activité, fin d’une activité, réception d’un signal, clôture du workflow. Ces événements sont enregistrés dans l’ordre, formant un journal à ajouts exclusivement appelé historique d’exécution.

Pourquoi les événements sont essentiels

Pourquoi les événements sont essentiels

L’historique d’exécution rend possible une exécution durable. C’est la source de vérité pour l’état d’un workflow. Lorsqu’un worker doit reprendre un workflow (après un crash, un redémarrage ou une réaffectation de tâche), il rejoue l’historique d’exécution depuis le début.

Pendant le rejeu, le code du workflow s’exécute à nouveau depuis le début, mais les activités déjà complétées ne sont pas rejouées : leurs résultats sont relus depuis l’historique. Le workflow retrouve exactement le point où il avait été interrompu, sans nécessiter de code de récupération spécifique de votre part.

Le rejeu fiable dépend du caractère déterministe du code du workflow. Voir Workflows > Déterminisme pour comprendre la contrainte et comment le SDK l’applique.

Types d’événements

Types d’événements

TypeDéclenché lorsque
WORKFLOW_EXECUTION_STARTEDUn workflow démarre
WORKFLOW_EXECUTION_COMPLETEDUn workflow se termine avec succès
WORKFLOW_EXECUTION_FAILEDUn workflow se termine sur une erreur non gérée
WORKFLOW_EXECUTION_CANCELEDUn workflow est annulé
WORKFLOW_EXECUTION_CONTINUED_AS_NEWUn workflow réinitialise son historique
WORKFLOW_TASK_TIMED_OUTUne tâche du workflow dépasse sa limite de temps
WORKFLOW_TASK_FAILEDUne tâche du workflow rencontre une erreur
ACTIVITY_TASK_STARTEDUne activité démarre
ACTIVITY_TASK_COMPLETEDUne activité se termine avec succès
ACTIVITY_TASK_RETRYINGUne activité est réessayée
ACTIVITY_TASK_FAILEDUne activité échoue
Limites de l’historique

Limites de l’historique

Chaque historique d’exécution est borné : 51 200 événements ou 50 Mo, selon la première limite atteinte. Pour les workflows très longs ou traitant un grand volume de tâches, la plateforme propose un mécanisme appelé continue-as-new, qui permet à un workflow de transférer son état essentiel dans un nouvel historique sans interrompre l’exécution.

Note

Les événements décrits ici sont des événements d’historique d’exécution : l’enregistrement interne des progrès d’un workflow, utilisé pour la durabilité et le rejeu. La plateforme prend aussi en charge des événements en streaming consommables en temps réel par des systèmes externes. Ceux-ci sont un concept distinct, détaillé dans la section Streaming.