Quick Start
Build your first diagram in six steps
Inicio rápido
Cree su primer diagrama de arquitectura validado en seis pasos. Cada paso introduce un nuevo concepto Datro. Al final, tendrá un diagrama completo, con estilo y con restricciones verificadas, listo para exportar como SVG.
Siga las instrucciones en el editor en vivo: pegue cada fragmento y haga clic en Validar.
Paso 1: escribe tus primeros nodos y aristas
Cada archivo .dtro comienza con un encabezado mágico. Después, declara nodos (entidades) y bordes (relaciones). Pega esto en el editor:
#!DATRO 1.0
node frontend { type: web label: "React App" }
node backend { type: service label: "NestJS API" }
node db { type: database label: "PostgreSQL" }
edge frontend -> backend { kind: http }
edge backend -> db { kind: query }Se requiere encabezado mágico
La línea #!DATRO 1.0 en la línea 1 es obligatoria. El analizador devuelve E100 si falta.
Paso 2: agregue `attrs` para obtener metadatos más completos
El bloque attrs contiene metadatos de valores-clave arbitrarios. Los valores pueden ser cadenas, números, booleanos o matrices. Los atributos comunes son tech, owner, deprecated y sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Los atributos pasan al JSON IR y aparecen como información sobre herramientas en el SVG renderizado, lo que resulta útil para metadatos de guardia y SLA.
Paso 3: agregar metadatos de borde
Los bordes tienen un tipo (tipo de relación semántica), una etiqueta opcional, un peso (tráfico relativo) y un indicador async. Los bordes asíncronos se representan como líneas discontinuas.
edge backend -> stripe {
kind: http
label: "charge API"
async: false
}| Field | Type | Required | Default | Description |
|---|---|---|---|---|
kind | EdgeKind "http""grpc""query""publish""subscribe""read""write""deploys""monitors""depends""…21 total" | Yes | unknown | Tipo de relación semántica |
label | string | No | — | Texto breve mostrado en la línea del borde. |
weight | number | No | 1.0 | Peso relativo del tráfico: los bordes más pesados se vuelven más gruesos |
async | boolean | No | false | Cuando es verdadero, el borde se representa como discontinuo (patrón de disparar y olvidar) |
Paso 4: agrupar los nodos en clústeres
Utilice un bloque group para agrupar nodos relacionados. Los grupos se representan como cuadros de subgrafos etiquetados en SVG. Un nodo sólo puede pertenecer a un grupo.
group data_tier {
label: "Data Layer"
members: [db, redis_cache]
}
node redis_cache { type: cache label: "Redis" }
edge backend -> redis_cache { kind: read label: "session" }Grupos frente a nodo.grupo
También puedes asignar un grupo directamente en el nodo con group: data_tier. Ambos estilos son válidos; la lista members del bloque group tiene prioridad.
Paso 5: agregar una restricción arquitectónica
Las restricciones son reglas arquitectónicas verificadas por máquina. El validador los evalúa con respecto al IR y devuelve E501 errores cuando se viola una regla.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}La regla database !-> external significa: ningún nodo de tipo database puede tener un borde dirigido a cualquier nodo de tipo external. Esto bloquea llamadas directas accidentales a DB → API de terceros.
Paso 6: agrega sugerencias de diseño y un tema
Controle cómo se organiza el diagrama con un bloque layout y defina una paleta de colores con un bloque theme. La verificación de accesibilidad activa W602 si algún color cae por debajo del contraste WCAG AA.
layout { direction: LR algo: dagre node_sep: 60 rank_sep: 120 }
theme {
palette {
service: "#D0E8FF"
database: "#FFE8C0"
web: "#E8D0FF"
cache: "#C0FFE8"
background: "#FFFFFF"
}
accessibility { min_contrast: AA }
}El contraste WCAG es automático.
El exportador DOT selecciona automáticamente el color de fuente blanco o negro para cada relleno de nodo utilizando la fórmula de luminancia relativa WCAG 2.1: no se necesita configuración.
Próximos pasos
- Lea el Language Reference para conocer la sintaxis completa de cada tipo de bloque.
- Utilice CLI Reference para validar, formatear y exportar desde la línea de comando.
- Aprenda a embed diagrams in Markdown documentos con el complemento comentario o markdown-it.
Su diagrama está listo para renderizar: haga clic en Renderizar → SVG en la barra de herramientas del editor.