Diagram MakerOverview
🗂️

Overview

What the Diagram Maker is and how it works

¿Qué es el Creador de diagramas?

Diagram Maker es una herramienta de diagramación de arquitectura basada en texto basada en Datro DSL: un lenguaje estructurado, validado y con formato canónico para describir sistemas de software como datos, no imágenes.

En lugar de arrastrar cuadros en un lienzo, escribe un archivo .dtro. La cadena de herramientas lo analiza, valida reglas arquitectónicas, aplica relaciones de contraste WCAG y lo representa en SVG, PNG o JSON interactivo, todo desde una única fuente de verdad.

Creador de diagramas abiertos

Escriba, valide y renderice su primer diagrama en minutos.

¿Por qué Datro en lugar de Mermaid o draw.io?

  • Nodos tipificados: 23 tipos semánticos (service, database, gateway, queue, …) producen automáticamente diagramas consistentes y con forma correcta.
  • Bordes escritos: 21 tipos semánticos (http, query, publish, grpc,…) codifican por colores y diseñan sus conexiones sin anulaciones manuales.
  • Restricciones arquitectónicas: escriba reglas como database !-> external y el validador las aplica en el momento del análisis, no en el momento de la revisión.
  • Formateador canónicodatro fmt reescribe cada archivo en un formato determinista; diff muestra cambios reales, no reformatea el ruido.
  • Importar y redactar: divida diagramas grandes en archivos usando import, alias de espacios de nombres y exponga listas blancas.
  • Accesibilidad WCAG 2.1: las relaciones de contraste se verifican automáticamente con su paleta de temas; W602 se dispara cuando caes por debajo de AA.
  • JSON IR legible por máquina: cada diagrama exporta un consumible JSON IR sin pérdidas mediante cualquier cadena de herramientas, sistema CI o renderizador personalizado.

Cómo funciona la cadena de herramientas

Cada archivo .dtro pasa por cuatro etapas antes de convertirse en un diagrama:

1 · Analizar2 · Validar3 · Exportar4 · Renderizar
  • Analizar: el analizador + lexer de descenso recursivo convierte el texto fuente en un objeto DatroIR. Nunca tira; todos los problemas se devuelven como Diagnostic[] con ubicaciones precisas de línea/columna.
  • Validar — 4 pasos: integridad estructural → verificación de restricciones semánticas → sugerencias de información → accesibilidad de longitud de etiqueta y contraste WCAG 2.1.
  • Exportar: el IR validado se convierte a DOT (Graphviz), Cytoscape.js JSON o JSON IR sin pérdidas.
  • Renderizar: la salida DOT se pasa a Graphviz para producir una salida SVG o PNG con píxeles perfectos.

Un ejemplo completo

Este archivo .dtro define un servicio de pago con grupos, nodos escritos, bordes semánticos, una regla de restricción, sugerencias de diseño y un tema de color verificado por WCAG, todo en un solo archivo:

payment-service.dtro
#!DATRO 1.0

meta {
  title:   "Payment Service"
  version: "2.0.0"
  owner:   "payments-team"
  sla:     "99.95%"
}

group data {
  label:   "Data Layer"
  members: [payments_db, fraud_cache]
}

node api_gw      { type: gateway  label: "API Gateway" }
node payment_svc { type: service  label: "Payment Service"  attrs { tech: "nestjs" } }
node payments_db { type: database label: "Payments DB"      attrs { tech: "postgres" } }
node fraud_cache { type: cache    label: "Fraud Cache"      attrs { tech: "redis" } }
node stripe      { type: external label: "Stripe" }

edge api_gw      -> payment_svc  { kind: http  label: "POST /charge" }
edge payment_svc -> payments_db  { kind: query }
edge payment_svc -> fraud_cache  { kind: read }
edge payment_svc -> stripe       { kind: http  label: "charge API" }

constraint {
  id:       "no-db-external"
  rule:     "database !-> external"
  message:  "Databases must not call external APIs"
  severity: error
}

layout { direction: LR  algo: dagre }

theme {
  palette { gateway: "#FFD0D0"  service: "#D0E8FF"  database: "#FFE8C0"  cache: "#C0FFE8" }
  accessibility { min_contrast: AA }
}
💡

Pruébalo ahora

Pegue el ejemplo anterior en el editor de Diagram Maker y haga clic en Validar; verá diagnósticos escritos con números de línea y luego los renderizará en SVG con un solo clic.

Resumen de funciones

23 tipos de nodos21 tipos de bordesWCAG 2.1 AA/AAABorrador de esquema JSON-07SVG · PNG · DOT · CitoscapeImportar / Redactar

Continúe con Quick Start para escribir su primer diagrama, o vaya directamente a Language Reference para ver la sintaxis completa.

Schema v1 · Updated September 2026