Overview
What the Diagram Maker is and how it works
Wat is de diagrammaker?
De Diagram Maker is een text-first architectural diagramming tool gebaseerd op Datro DSL een gestructureerde, gevalideerde en canonisch geformatteerde taal om software systemen te beschrijven als data, niet als beelden.
In plaats van dozen op een scherm te trekken, schrijf een .dtro-Dossier. De toolchain analyseert het, valideert architectuurregels, dwingt WCAG-contrastverhoudingen op en rendert het in SVG, PNG of interactief JSON alles uit één enkele bron van waarheid.
Schrijf, valideer en render je eerste diagram in een paar minuten.
Waarom Datro in plaats van Mermaid of draw.io?
- Tipeerde knopen 23 semantieke soorten (
service,database,gateway,queue, …) het automatisch produceren van consistente, juiste diagrammen. - Getypeerde kanten 21 semantieke soorten (
http,query,publish,grpc, …) codeer en vorm je verbindingen zonder handmatige overschrijvingen. - Architectonische beperkingen Schrijf regels als
database!-> externalEn de validator dwingt ze op het moment van analyse, niet het moment van controle. - Canonieke opleiders –
datro fmtschrijft elk bestand om in een deterministisch formaat; diff toont echte veranderingen, geen herformattingsgeluid. - Importeren en maken Deel grote diagrammen met behulp van
import, Namespace aliasing en het aanbieden van Whitelists op meerdere bestanden. - WCAG 2.1-Barriervrijheid Contrastverhoudingen worden automatisch gecontroleerd op basis van uw thema-palet;
W602wordt uitgelokt als je onder AA valt. - Masjienleesbare JSON IR elk diagram exporteert een verliesvrije JSON IR die gebruikt kan worden door elke toolchain, elk CI-systeem of elke custom renderer.
Hoe de toolchain werkt
Ieder .dtro-Een bestand gaat door vier fasen voordat het een diagram wordt:
- Parsen van de recursieve Lexer + Parser
DatroIR-Voorwerp. Het werpt nooit; alle problemen worden alsDiagnostic[]met nauwkeurige lijn/kolomposities. - Valideren 4 doorgangen: structurele integriteit → semantieke beperkingsproef → informatieverwijzingen → WCAG 2.1-contrast en toegankelijkheid van de etiketlengte.
- Export het gevalideerde IR wordt omgezet in DOT (Graphviz), Cytoscape.js JSON of verliesloos JSON IR.
- Render de DOT-uitgave wordt overgedragen aan Graphviz om een pixel-echte SVG- of PNG-uitgave te produceren.
Een volledig voorbeeld
Deze .dtro-File definieert een betaaldienst met groepen, getypeerde nodes, semantische kanten, een beperking regel, layout-instructies en een WCAG-gecontroleerd kleurthema alles in één file:
#!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 }
}Probeer het nu eens.
Voeg het voorbeeld hierboven in de diagrammaker-editor en klik op Valid“. Je ziet een ingegeven diagnose met lijnnummers en je kunt deze dan met één klik in SVG weergeven.
Functioneel samenvatting
Ga door met Quick Start om je eerste grafiek te schrijven, of spring direct naar Language Reference om de volledige syntax te krijgen.