Diagram MakerQuick Start

Quick Start

Build your first diagram in six steps

Avvio rapido

Costruisci il tuo primo diagramma di architettura convalidato in sei passaggi. Ogni passaggio introduce un nuovo concetto Datro. Alla fine avrai un diagramma completo, stilizzato e controllato dai vincoli, pronto per essere esportato come SVG.

Apri Creatore di diagrammi

Segui l'editor live: incolla ogni snippet e fai clic su Convalida.

Passaggio 1: scrivi i primi nodi e bordi

Ogni file .dtro inizia con un'intestazione magica. Successivamente, dichiara nodi (entità) e bordi (relazioni). Incolla questo nell'editor:

arch.dtro
#!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 }
ℹ️

È richiesta l'intestazione magica

La riga #!DATRO 1.0 sulla riga 1 è obbligatoria. Il parser restituisce E100 se manca.

Passaggio 2: aggiungi `attrs` per metadati più ricchi

Il blocco attrs contiene metadati di valori-chiave arbitrari. I valori possono essere stringhe, numeri, valori booleani o matrici. Gli attributi comuni sono tech, owner, deprecated e sla.

DATRO
node backend {
  type:  service
  label: "NestJS API"
  attrs {
    tech:  "nestjs"
    owner: "platform-team"
  }
}

Gli attributi passano all'IR JSON e vengono visualizzati come descrizioni comandi nell'SVG renderizzato, utili per i metadati di guardia e SLA.

Passaggio 3: aggiungi metadati edge

I bordi hanno un tipo (tipo di relazione semantica), un'etichetta opzionale, un peso (traffico relativo) e un flag asincrono. I bordi asincroni vengono visualizzati come linee tratteggiate.

DATRO
edge backend -> stripe {
  kind:  http
  label: "charge API"
  async: false
}
FieldTypeRequiredDescription
kindEdgeKind
"http""grpc""query""publish""subscribe""read""write""deploys""monitors""depends""…21 total"
YesTipo di relazione semantica
labelstringNoBreve testo visualizzato sulla linea del bordo
weightnumberNoPeso relativo del traffico: i bordi più pesanti rendono più spessi
asyncbooleanNoQuando è vero, il bordo viene visualizzato come tratteggiato (modello "spara e dimentica")

Passaggio 4: raggruppa i nodi in cluster

Utilizza un blocco group per i nodi correlati al cluster. I gruppi vengono visualizzati come riquadri di sottografo etichettati nell'SVG. Un nodo può appartenere a un solo gruppo.

DATRO
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" }
💡

Gruppi vs. nodo.gruppo

Puoi anche assegnare un gruppo direttamente sul nodo con group: data_tier. Entrambi gli stili sono validi; l'elenco members del blocco group ha la precedenza.

Passaggio 5: aggiungi un vincolo architettonico

I vincoli sono regole architettoniche controllate dalla macchina. Il validatore li valuta rispetto all'IR e restituisce errori E501 quando una regola viene violata.

DATRO
constraint {
  id:       "no-db-external"
  rule:     "database !-> external"
  message:  "Databases must not connect to external services"
  severity: error
}

La regola database !-> external significa: nessun nodo di tipo database può avere un arco diretto verso qualsiasi nodo di tipo external. Ciò blocca le chiamate dirette accidentali DB → API di terze parti.

Passaggio 6: aggiungi suggerimenti di layout e un tema

Controlla come è organizzato il diagramma con un blocco layout e definisci una tavolozza di colori con un blocco theme. Il controllo di accessibilità si attiva W602 se un colore scende al di sotto del contrasto WCAG AA.

DATRO
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 }
}
💡

Il contrasto WCAG è automatico

L'esportatore DOT seleziona automaticamente il colore del carattere bianco o nero per il riempimento di ciascun nodo utilizzando la formula di luminanza relativa WCAG 2.1: non è necessaria alcuna configurazione.

Prossimi passi

Apri Creatore di diagrammi

Il tuo diagramma è pronto per il rendering: fai clic su Render → SVG nella barra degli strumenti dell'editor.

Schema v1 · Updated September 2026