El modelado de eventos (EM) es una metodología estratégica utilizada para diseñar y describir sistemas de información mediante el mapeo de cómo los datos cambian, se transforman y evolucionan a lo largo de una línea temporal lineal. Al omitir deliberadamente los mecanismos transitorios del sistema, un diagrama de modelado de eventos se centra estrictamente en el flujo exacto de información y en lo que el usuario ve explícitamente en cualquier momento designado. El motor nativo modeladoeventos motor categoriza automáticamente sus definiciones de diseño en tres carriles visuales aislados: Interfaz de usuario/Automatización, Comando/Modelo de lectura, y Eventos.
Comprender los carriles del sistema
Cuando defines elementos en tu línea de tiempo, Mermaid los asigna a pistas horizontales específicas basándose únicamente en los tipos de entidad subyacentes:
- Carril de Interfaz de usuario/Automatización: Almacena interfaces de usuario (
ui) y procesadores de fondo (pcr/procesador). Representa cómo se activan o visualizan las acciones. - Carril de Comando/Modelo de lectura: Almacena comandos (
cmd/comando) que pretenden alterar el estado del sistema, o modelos de lectura (rmo/modeloleer) que almacenan datos de consulta estructurados. - Vía de eventos: Almacena eventos históricos del dominio (
evt/evento). Esta pista captura la fuente absoluta de verdad sobre lo que ha ocurrido en el pasado.
Estructura básica de sintaxis (Compacta frente a Relajada)
Cada diagrama comienza con la declaración de eventmodeling declaración. Puedes trazar tu cronología utilizando una sintaxis compacta (usando tokens estructurales cortos como tf, ui, cmd, evt) o una sintaxis descriptiva relajada (usando timeframe, command, readmodel). Ambos estilos pueden combinarse indistintamente.
1. Plantilla de sintaxis compacta
modelado de eventos
tf 01 ui PantallaInicioSesion
tf 02 cmd CmdEnviarCredenciales
tf 03 evt UsuarioAutenticado 
2. Plantilla de sintaxis relajada
modelado de eventos
timeframe 01 ui PantallaInicioSesion
timeframe 02 command CmdEnviarCredenciales
timeframe 03 event UsuarioAutenticado 
Referencia de sintaxis
La tabla a continuación desglosa los componentes de datos principales, palabras clave de formato y tokens de acceso directo utilizados para establecer marcos de modelado de eventos dentro del intérprete en tiempo de ejecución de Mermaid.
| Token compacto | Palabra clave relajada | Asignación de carril | Descripción y reglas |
|---|---|---|---|
tf |
timeframe |
N/D (Encabezado de cuadrícula) | Declara una ranura de marco de columna de cronología secuencial. Debe ir seguido de un número de secuencia único (por ejemplo, 01). |
rf |
resetframe |
N/D (Encabezado de cuadrícula) | Restablece el índice de posición de columna o crea líneas de flujo automatizadas fuera de banda. |
ui |
ui |
Interfaz de usuario/Automatización | Mapea un panel o página de interfaz gráfica que una persona visualiza o interactúa. |
pcr |
procesador |
Interfaz de usuario/Automatización | Define un procesador de fondo automatizado, un mecanismo cron o una saga. |
cmd |
comando |
Comando/Modelo de lectura | Representa una intención de acción explícita o una solicitud para modificar variables de estado. |
rmo |
modelo de lectura |
Comando/Modelo de lectura | Define vistas de caché estructuradas y de solo lectura o tablas de proyección de búsqueda. |
evt |
evento |
Registro de eventos | Un registro histórico inmutable que documenta una actividad que se ejecutó con éxito. |
Documentación de proyecciones de datos de contexto
Para proporcionar diseños de información de alta densidad, Mermaid permite incrustar esquemas de datos explícitos o prototipos de estado directamente en sus marcos de cronología. Puedes implementar esto utilizando campos en línea o bloques de datos estructurales externos.
1. Definiciones de datos en línea
Para definiciones breves de parámetros, añade un mapa de datos explícito rodeado por corchetes ({ }) directamente en la declaración de línea de tiempo activa:
modelado de eventos
tf 01 cmd AgregarAlCarrito { itemSku: string, cantidad: int }
tf 02 evt ElementoAgregado { itemSku: string } 
2. Bloques de datos separados (corchetes dobles)
Cuando se manejan matrices de objetos complejas o se reutilizan propiedades coincidentes en diferentes marcos, asigna un descriptor externo. Coloca una referencia de puntero encerrada entre corchetes dobles ([[IDBloque]]) en la línea de tiempo, y detalla los componentes del objeto por separado al final del script mediante la palabra clave datospalabra clave:
modelado de eventos
tf 01 cmd Checkout [[OrderData01]]
tf 02 evt OrderPlaced [[OrderData01]]
data OrderData01 {
orderId: 'ORD-992'
totalAmount: 145.50
currency: 'USD'
} 
Plano real: Automatización de inventario para comercio electrónico
Este plano completo y de múltiples carriles muestra un flujo de trabajo avanzado de arquitectura para comercio electrónico. Mapea las acciones secuenciales del usuario en la interfaz frontal, transiciones a través de comandos de procesamiento, rastrea las huellas históricas de eventos e implementa un procesador de microservicios en segundo plano automatizado mediante un resetframe (rf), y proporciona modelos de bloques de datos aislados.
modelado de eventos
%% Fase 1: Interacción del usuario con el carrito
tf 01 ui ProductCatalogView
tf 02 cmd AddItemToCart [[CartCommand]]
tf 03 evt Cart.ItemAdded [[CartEvent]]
tf 04 rmo ActiveMiniCartView [[CartPayload]]
%% Fase 2: Validación automática de inventario en segundo plano
rf 05 evt Cart.ItemAdded
tf 06 pcr ReservationProcessor
tf 07 cmd AllocateWarehouseStock { sku: string, qty: int }
tf 08 evt Inventory.StockReserved { reservationId: uuid }
%% Especificaciones de esquema de datos externos
data CartCommand {
productId: 'PROD-402'
quantity: 1
}
data CartEvent {
productId: 'PROD-402'
quantity: 1
timestamp: 1718544000
}
data CartPayload {
totalItems: 1
cartSubtotal: 24.99
} 
Consejo de sintaxis:Para crear carriles secundarios bien organizados debajo de las vías principales o aislar múltiples subsistemas, puede agregar una cadena calificadora de espacio de nombres separada por puntos a las etiquetas de sus entidades (por ejemplo: evt Cart.ItemAdded vs. evt Inventory.StockReserved). El motor generará automáticamente líneas de subgrupos distintas para esas entidades.
Errores comunes de sintaxis y limitaciones del sistema
Al diseñar bloques de comportamiento de series de tiempo altamente densos, tenga en cuenta estas reglas de validación de formato para evitar errores de compilación:
- Números de secuencia de seguimiento de marcos temporales: Cada
tfotimeframeasignación requiere un token de identificador numérico explícito inmediatamente después de él. Escribir una definición de token comotf ui ProductViewsin un índice numérico intermedio detendrá el análisis del sistema. - Espacios en blanco y formato de objetos: Dentro de mapas de datos con estilo JSON o independientes
datosdeclaraciones, mantenga asignaciones limpias. Olvidar una llave de apertura o corchetes finales puede provocar diseños de cuadrícula no resueltos. - Diferenciación entre marcos de tiempo y marcos de reinicio: Use
tfpara operaciones progresivas impulsadas por humanos. Userf/marco de reiniciointencionalmente cuando necesite ilustrar desencadenantes fuera de banda, como un trabajo cron en segundo plano que procesa un evento que ocurrió anteriormente. - Reutilización de datos inmutables: Cuando se hace referencia al mismo diseño de carga de datos exacto en múltiples pasos de la cronología, conserve coincidencias idénticas en los nombres en sus puntos de acceso de datos para evitar la generación de nodos duplicados.