Diagram MakerQuick Start

Quick Start

Build your first diagram in six steps

Hurtig start

Du skal bygge dit første validerede arkitektoniske diagram i seks trin. Hvert trin introducerer et nyt Datro-koncept. I slutningen vil du have et komplet, stiliseret, begrænsningskontrolleret diagram klar til eksport som SVG.

Åben diagrammaker

Følg med i live-redigeringen indsæt hvert fragment og klik på Valider.

Trin 1 Skriv dine første knuder og kanter

Hver .dtro-fil begynder med en magisk overskrift. Efter det angives nodes (entiteter) og edges (forbindelser). Læg dette ind i redaktøren:

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 }
ℹ️

Magisk overskrift kræves

#!DATRO 1.0-linjen på linje 1 er obligatorisk. Parseren returnerer E100, hvis den mangler.

Trin 2 Tilføj `attrs` til mere rig metadata

attrs-blokken indeholder vilkårlige nøgleværdi metadata. Værdier kan være strenge, tal, boolean eller arrays. Vanlige attributter er tech, owner, deprecated og sla.

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

Attributter går gennem til JSON IR og vises som værktøjstips i den renderet SVG, der er nyttige for on-call og SLA metadata.

Trin 3 Tilføj kant metadata

Ringer har en type (semantisk relation type), en valgfri etikette, en vægt (relativ trafik) og et async flag. Async kanter giver som streget linjer.

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"
YesSemantisk relationstype
labelstringNoKort tekst vises på kantlinjen
weightnumberNoRelativ trafikvægt tungere kanter gør tykkere
asyncbooleanNoNår det er sandt, giver kanten som skåret (brænd-og-glem mønster)

Trin 4 Grupper knuder i klynger

Brug en group blok til at klynge relaterede noder. Gruppen afleveres som mærkede undergraf bokser i SVG. En node kan kun tilhøre en gruppe.

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

Grupper vs node.group

Du kan også tildele en gruppe direkte på knudepunktet med group: data_tier. Begge stilarter er gyldige; group-blokken members-listen har forrang.

Trin 5 Tilføj et arkitektonisk begrænsning

Begrænsninger er maskinkontrollerede arkitektoniske regler. Validereren evaluerer dem mod IR og returnerer E501 fejl, når en regel overtrædes.

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

Reglen database !-> external betyder, at ingen node af typen database må have en rettet kant til en node af typen external. Dermed blokeres utilsigtede direkte kald fra databasen til tredjeparts-API’er.

Trin 6 Tilføj layout- tips og et tema

Kontroller, hvordan diagrammet er arrangeret med et layout-blok og definere en farvepalette med et theme-blok. Tilgængelighedskontrolen aktiverer W602, hvis en farve falder under WCAG AA kontrast.

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

WCAG kontrast er automatisk

DOT-eksporteren vælger automatisk sort eller hvid skriftfarve til hver knudefyldning ved hjælp af WCAG 2.1-formlen om relativ lysstyrke nul konfiguration.

Næste trin

Åben diagrammaker

Din diagram er klar til at afgive klikke på Render → SVG i redigeringsværktøjstokken.

Schema v1 · Updated September 2026