sequenceDiagram
actor R as Lector
participant S as Servicio de búsqueda
R->>+S: Buscar guía
S-->>-R: Devolver resultados Cargando…
Mermaid 11.15.0
Los diagramas de secuencia muestran mensajes entre participantes. Usa un diagrama de flujo para decisiones o uno de clases para estructuras estáticas.
Crear con el Generador de diagramas de secuencia →Declara los alias antes de los mensajes para fijar el orden de las líneas de vida.
sequenceDiagram
actor R as Lector
participant S as Servicio de búsqueda
R->>+S: Buscar guía
S-->>-R: Devolver resultados Cargando…
| Sintaxis | Significado |
|---|---|
| sequenceDiagram / participant / actor / as | Declara líneas de vida y alias; actor usa un símbolo de persona. |
| participant A@{ "type": "boundary" } | Tipos: boundary, control, entity, database, collections y queue; participant y actor cubren los casos básicos. |
| -> | Línea continua sin punta |
| --> | Línea discontinua sin punta |
| ->> | Flecha continua |
| -->> | Flecha discontinua |
| <<->> | Flecha bidireccional continua |
| <<-->> | Flecha bidireccional discontinua |
| -x | Línea continua con cruz |
| --x | Línea discontinua con cruz |
| -) | Flecha abierta continua, asíncrona |
| --) | Flecha abierta discontinua, asíncrona |
| -|\ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| --|\ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| -|/ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| --|/ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| /|- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| /|-- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| \\- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| \\-- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| -\\ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| --\\ | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| -// | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| --// | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| //- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| //-- | Variante de media flecha; el ejemplo muestra orientación y trazo. |
| A->>()B / A()->>B / A()->>()B | Conecta un mensaje al centro de la línea de vida emisora o receptora. |
| activate / deactivate / ->>+ / -->>- | Inicia y termina activaciones; las activaciones anidadas deben quedar equilibradas. |
| create participant / create actor / destroy | Crea antes del primer mensaje entrante y destruye antes del mensaje final. |
| Note left of / right of / over A,B | Sitúa notas junto a una línea o sobre varias; <br/> introduce saltos. |
| loop / alt / else / opt / par / and / critical / option / break / rect / end | Cierra cada bloque con end; else, and y option pertenecen a sus respectivos bloques. rect recibe un color. |
| autonumber / autonumber 10 5 | Numera mensajes; puedes indicar inicio e incremento. |
| box Color Label / end | Agrupa declaraciones de participantes en una caja de color o transparente. |
| link A: Label @ URL / links A: {"Label":"URL"} | Añade un enlace o un menú JSON al participante. |
| %% / accTitle: / accDescr: | Comentarios y descripciones accesibles. |
Los ids son cortos y los alias contienen el texto visible. La configuración JSON cambia el símbolo; declara todas las líneas de vida antes de enviar mensajes.
sequenceDiagram
actor R as Lector
participant B@{ "type": "boundary" }
participant C@{ "type": "control" }
participant E@{ "type": "entity" }
participant D@{ "type": "database" }
participant L@{ "type": "collections" }
participant Q@{ "type": "queue" }
R->>B: Solicitud
B->>C: Validar
C->>E: Leer
E->>D: Consulta
D-->>L: Resultados
L-)Q: Notificar Cargando…
Elige una flecha según la convención de tu documentación. Las abiertas suelen indicar envío asíncrono; una cruz dibujada no destruye la línea de vida sin destroy.
sequenceDiagram
participant A as Emisor
participant B as Receptor
A->B: Mensaje
A-->B: Mensaje
A->>B: Mensaje
A-->>B: Mensaje
A<<->>B: Mensaje
A<<-->>B: Mensaje
A-xB: Mensaje
A--xB: Mensaje
A-)B: Mensaje
A--)B: Mensaje
A-|\B: Mensaje
A--|\B: Mensaje
A-|/B: Mensaje
A--|/B: Mensaje
A/|-B: Mensaje
A/|--B: Mensaje
A\\-B: Mensaje
A\\--B: Mensaje
A-\\B: Mensaje
A--\\B: Mensaje
A-//B: Mensaje
A--//B: Mensaje
A//-B: Mensaje
A//--B: Mensaje
A()->>()B: Conexión central Cargando…
create va inmediatamente antes del mensaje de creación y destroy antes del mensaje final. Equilibra cada activación.
sequenceDiagram
participant C as Controlador
create participant W as Trabajador
C->>+W: Iniciar trabajo
Note right of W: Proceso temporal
W-->>-C: Trabajo terminado
destroy W
C-xW: Detener proceso Cargando…
Cierra los bloques con end. else separa alternativas, and ramas paralelas y option recuperaciones de critical. break representa una salida excepcional.
sequenceDiagram
participant C as Cliente
participant S as Servicio
loop Reintento
C->>S: Solicitud
alt Aceptado
S-->>C: Resultado
else Rechazado
S-->>C: Error
end
end
opt Caché disponible
S-->>C: Resultado en caché
end
par Registro
S->>S: Registrar
and Métricas
S->>S: Contar
end
critical Confirmación
S->>S: Guardar
option Fallo
S-->>C: Revertir
end
break Tiempo agotado
S-->>C: Detener
end
rect rgb(230,240,255)
Note over C,S: Límite de revisión
end Cargando…
mirrorActors repite participantes al pie; wrap ajusta mensajes y actorMargin separa líneas de vida. Estas opciones no cambian el orden de los mensajes.
---
config:
sequence:
mirrorActors: false
wrap: true
actorMargin: 60
---
sequenceDiagram
participant R as Lector
participant G as Guía
R->>G: Leer referencia Cargando…
Añade un end por cada bloque anidado.
Sintaxis incorrecta: ejemplo corregido abajo
sequenceDiagram
loop Reintento
A->>B: SolicitudsequenceDiagram
loop Reintento
A->>B: Solicitud
end Cargando…
end es una palabra especial; usa comillas o corchetes si causa ambigüedad y evita ids reservados.