Quick Start
Build your first diagram in six steps
Vinnige start
Maak je eerste gevalideerde architectuurdiagram in zes stappen. Elke stap introduceert een nieuw datro-concept. Uiteindelijk heb je een compleet, ontworpen en beperkt gecontroleerd diagram dat je als SVG kunt exporteren.
Volg de instructies in de live-editor: voeg elke snippet toe en klik op Valid“.
Stap 1 Schrijf je eerste knopen en randen op
Ieder .dtro-File begint met een magische header. Vervolgens verklaar je *knopen* (entiteiten) en *kant* (relaties)). Voeg dit in de 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 }Magische header nodig
De lijn #!DATRO 1.0 in lijn 1 is verplicht. De parser geeft E100 terug als ze er niet zijn.
Stap 2 Voeg `attrs` om meer metadata te verkrijgen
Het blok attrs bevat elk metadata van de sleutelwaarde. Waarden kunnen tekens, getallen, boole waarden of arrays zijn. De gemeenschappelijke attributen zijn: tech, owner, deprecated en sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Attributen worden doorgestuurd naar de JSON IR en weergegeven als tooltips in het gerendereerde SVG nuttig voor gereedheids- en SLA-metadata.
Stap 3 Edge metadata toevoegen
Kanten hebben een type (semantisch relatietype), een optioneel label, een gewicht (relatieve dataverkeer) en een asynchrone vlag. Asynchrone randen worden als gestreepte lijnen weergegeven.
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 | Semantisch relatietype |
label | string | No | — | Korte tekst die wordt weergegeven op de randlijn |
weight | number | No | 1.0 | Relatief verkeersgewicht zwaarder kanten worden dikker |
async | boolean | No | false | Als true, is de rand gestript (brand-en-vergeten-patroon)). |
Stap 4 Groepen knopen in clusters
Gebruik een groep-blok om verwante knopen te groeperen. Groepen worden in de SVG weergegeven als aangegeven subdiagrammatische velden. Een knoop kan slechts tot een groep behoren.
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" }Groepen vs. node.groep
U kunt met group: data_tier ook direct aan de knoop een groep toe te wijzen. Beide stijlen zijn geldig; de lijst members des Blocks group is van voorkeur.
Stap 5 Voeg een architectonische beperking toe
Beperkingen zijn machine gecontroleerde architectonische regels. De validator beoordeelt deze op basis van de IR en geeft E501-Fouten terug wanneer een regel wordt geschonden.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}De regel database!-> external betekent: geen knopen van het type database mag een gericht rand hebben op een knop van het type external hebben. Dit blokkeert toevallige directe DB → API-oproepen van derde partijen.
Stap 6 Layoutwijze en een thema toevoegen
Beheer de volgorde van het diagram met een layout-Block en definieer een kleurpalet met een theme-Bloek. De toegankelijkheidscontrole oplost W602 uit wanneer een kleur onder het WCAG AA-contrast valt.
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 }
}Het WCAG-contrast is automatisch
De DOT-exporteur selecteert automatisch een zwarte of witte letterkleur voor elke knopfilling, met behulp van de relatieve luminaire formule van WCAG 2.1, geen configuratie nodig.
Volgende stappen
- Lees Language Reference voor de volledige syntax van elk bloktype.
- Gebruik CLI Reference voor het valideren, formateren en exporteren via de command-line.
- Leer hoe je documenten kunt maken met de Remark- of Markdown-it-plugin.
Je grafiek is klaar om te worden weergegeven Klik in de editor-symboolbalk op weergeven → SVG.