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.
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:
#!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.
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.
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 | Semantisk relationstype |
label | string | No | — | Kort tekst vises på kantlinjen |
weight | number | No | 1.0 | Relativ trafikvægt tungere kanter gør tykkere |
async | boolean | No | false | Nå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.
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.
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.
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
- Læs Talsreference for den fulde syntax af hver bloktype.
- Brug CLI Reference til at validerere, formatere og eksportere fra kommandoen.
- Lær at indlejre diagrammer i Markdown doc med bemærkningen eller markdown-it plugin.
Din diagram er klar til at afgive klikke på Render → SVG i redigeringsværktøjstokken.