Syntax de modélisation des événements Mermaid.js & Guide des voies de navigation

La modélisation des événements (EM) est une méthodologie stratégique utilisée pour concevoir et décrire les systèmes d’information en cartographiant comment les données évoluent, se transforment et changent au fil d’un timeline linéaire. En omettant délibérément les mécanismes transitoires du système, un diagramme de modélisation des événements se concentre strictement sur le flux d’information exact et ce que l’utilisateur voit explicitement à tout moment donné. Le moteur natif eventmodeling moteur catégorise automatiquement vos définitions de disposition en trois voies visuelles isolées : UI/Automatisation, Commande/Modèle de lecture, et Événements.

Comprendre les voies du système

Lorsque vous définissez des éléments sur votre timeline, Mermaid les attribue à des pistes horizontales spécifiques en fonction entièrement des types d’entités sous-jacentes :

  • Voie UI/Automatisation : Contient les interfaces utilisateur (ui) et les processeurs en arrière-plan (pcr / processeur). Représente la manière dont les actions sont déclenchées ou visualisées.
  • Voie Commande/Modèle de lecture : Contient les commandes (cmd / commande) destinées à modifier l’état du système, ou les modèles de lecture (rmo / modèle de lecture) qui contiennent des données de requête structurées.
  • Voie des événements : Contient les événements du domaine historiques (evt / événement). Cette piste capture la source absolue de vérité concernant ce qui s’est produit dans le passé.

Structure de syntaxe de base (Compacte vs. Détendue)

Chaque diagramme commence par la déclaration eventmodeling déclaration. Vous pouvez tracer votre chronologie en utilisant soit une syntaxe compacte (en utilisant des jetons structurels courts comme tf, ui, cmd, evt) ou une syntaxe descriptive détendue (en utilisant timeframe, command, readmodel). Les deux styles peuvent être mélangés indifféremment.

1. Modèle de syntaxe compacte

modélisation des événements
tf 01 ui EcranConnexion
tf 02 cmd CmdSoumettreIdentifiants
tf 03 evt UtilisateurAuthentifié

2. Modèle de syntaxe souple

modélisation des événements
timeframe 01 ui EcranConnexion
timeframe 02 commande CmdSoumettreIdentifiants
timeframe 03 événement UtilisateurAuthentifié


Référence de syntaxe

Le tableau ci-dessous détaille les composants de données principaux, les mots-clés de formatage et les jetons raccourcis utilisés pour établir des cadres de modélisation des événements dans l’interpréteur en temps d’exécution de Mermaid.

Jetons compacts Mot-clé souple Affectation de voie Description et règles
tf timeframe N/C (En-tête de grille) Déclare une case de cadre de colonne de chronologie séquentielle. Doit être suivi d’un numéro de séquence unique (par exemple, 01).
rf resetframe N/C (En-tête de grille) Réinitialise l’index de position de colonne ou crée des lignes de flux automatisées hors bande.
ui ui UI/Automatisation Mappe un panneau ou une page d’interface graphique que l’humain visualise ou avec laquelle il interagit.
pcr processeur Interface utilisateur/automatisation Définit un processeur en arrière-plan automatisé, un mécanisme cron ou une saga.
cmd commande Commande/Modèle de lecture Représente une intention d’action explicite ou une demande de modification des variables d’état.
rmo modèle de lecture Commande/Modèle de lecture Définit des vues de cache structurées en lecture seule ou des tables de projection de recherche.
evt événement Suivi des événements Un enregistrement historique immuable documentant une activité ayant été exécutée avec succès.

Documentation des projections de données de contexte

Pour offrir des mises en page d’informations à haute densité, Mermaid permet d’incorporer directement dans vos cadres de chronologie des schémas de données explicites ou des maquettes d’état. Vous pouvez implémenter cela à l’aide de champs en ligne ou de blocs de données structurales externes.

1. Définitions de données en ligne

Pour des définitions de paramètres brèves, ajoutez une carte de données explicite entourée de crochets ({ }) directement sur l’instruction de ligne de cadre actif :

modélisation des événements
tf 01 cmd AjouterAuPanier { itemSku: chaîne, count: entier }
tf 02 evt ArticleAjouté { itemSku: chaîne }

2. Blocs de données séparés (crochets doubles)

Lors de la gestion de matrices d’objets complexes ou de la réutilisation de propriétés correspondantes dans différents cadres, définissez un descripteur externe. Placez une référence de pointeur encadrée par des crochets doubles ([[IDBloc]]) sur la ligne de cadre, et détaillez les composants de l’objet séparément en bas du script via le mot-clé datamot-clé :

modélisation des événements
tf 01 cmd Checkout [[OrderData01]]
tf 02 evt OrderPlaced [[OrderData01]]

data OrderData01 {
  orderId: 'ORD-992'
  totalAmount: 145.50
  currency: 'USD'
}


Maquette du monde réel : Automatisation des stocks pour e-commerce

Cette maquette complète et à plusieurs voies met en évidence un flux de travail avancé d’architecture e-commerce. Elle décrit les actions successives de l’utilisateur en front-end, les transitions par des commandes de traitement, suit les traces historiques des événements, et met en œuvre un processeur de microservice en arrière-plan automatisé via un resetframe (rf), et fournit des modèles de blocs de données isolés.

modélisation des événements
%% Phase 1 : Interaction utilisateur avec le panier
tf 01 ui ProductCatalogView
tf 02 cmd AddItemToCart [[CartCommand]]
tf 03 evt Cart.ItemAdded [[CartEvent]]
tf 04 rmo ActiveMiniCartView [[CartPayload]]

%% Phase 2 : Validation automatique des stocks en arrière-plan
rf 05 evt Cart.ItemAdded
tf 06 pcr ReservationProcessor
tf 07 cmd AllocateWarehouseStock { sku : chaîne, qty : entier }
tf 08 evt Inventory.StockReserved { reservationId : uuid }

%% Spécifications des schémas de données externes
data CartCommand {
  productId : 'PROD-402'
  quantity : 1
}
data CartEvent {
  productId : 'PROD-402'
  quantity : 1
  timestamp : 1718544000
}
data CartPayload {
  totalItems : 1
  cartSubtotal : 24.99
}


Astuce de syntaxe : Pour créer des voies secondaires bien organisées sous les voies principales ou isoler plusieurs sous-systèmes, vous pouvez préfixer les étiquettes d’entités par une chaîne de qualificateur d’espace de noms séparée par des points (par exemple : evt Cart.ItemAdded vs. evt Inventory.StockReserved). Le moteur générera automatiquement des lignes distinctes de sous-groupes pour ces entités.


Péchés courants de syntaxe et contraintes du système

Lors de la conception de blocs de comportement à série temporelle très dense, gardez à l’esprit ces règles de validation de formatage afin d’éviter les erreurs de compilation :

  • Numéros de séquence de suivi des intervalles de temps : Chaque tf ou intervalle de temps affectation nécessite un jeton d’identifiant numérique explicite immédiatement après. Écrire une définition de jeton comme tf ui ProductView sans un index numérique intermédiaire arrêtera le traitement du système.
  • Espaces blancs et formatage des objets : À l’intérieur des cartes de données au format JSON ou en tant que données autonomes données déclarations, assurez-vous des affectations propres. Oublier une accolade ouvrante ou des crochets fermants peut entraîner des mises en page de grille non résolues.
  • Différencier les intervalles de temps des réinitialisations : Utilisez tf pour les opérations en avancement, pilotées par l’humain. Utilisez rf / resetframe intentionnellement lorsque vous devez illustrer des déclencheurs hors bande, tels qu’un job cron en arrière-plan traitant un événement survenu précédemment.
  • Réutilisation de données immuables : Lorsque vous faites référence à la même structure de charge utile de données à travers plusieurs étapes du chronologie, conservez des correspondances de noms identiques dans vos points de référence de données afin d’éviter la génération de nœuds en double.
Retour en haut