Quick Start
Build your first diagram in six steps
Início rápido
Crie seu primeiro diagrama de arquitetura validado em seis etapas. Cada etapa introduz um novo conceito Datro. No final, você terá um diagrama completo, estilizado e com restrições verificadas, pronto para exportar como SVG.
Acompanhe no editor ao vivo – cole cada trecho e clique em Validar.
Passo 1 — Escreva seus primeiros nós e arestas
Cada arquivo .dtro começa com um cabeçalho mágico. Depois disso, declare nós (entidades) e arestas (relacionamentos). Cole isso no 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 }Cabeçalho mágico necessário
A linha #!DATRO 1.0 na linha 1 é obrigatória. O analisador retorna E100 se estiver faltando.
Etapa 2 — Adicione `attrs` para metadados mais ricos
O bloco attrs contém metadados de valores-chave arbitrários. Os valores podem ser strings, números, booleanos ou matrizes. Atributos comuns são tech, owner, deprecated e sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Os atributos passam para o JSON IR e aparecem como dicas de ferramentas no SVG renderizado – útil para metadados de plantão e SLA.
Passo 3 — Adicionar metadados de borda
As bordas têm um tipo (tipo de relacionamento semântico), um rótulo opcional, um peso (tráfego relativo) e um sinalizador assíncrono. As arestas assíncronas são renderizadas como linhas tracejadas.
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 | Tipo de relacionamento semântico |
label | string | No | — | Texto curto exibido na linha da borda |
weight | number | No | 1.0 | Peso relativo do tráfego – bordas mais pesadas ficam mais espessas |
async | boolean | No | false | Quando verdadeiro, a borda é renderizada como tracejada (padrão disparar e esquecer) |
Passo 4 — Agrupar nós em clusters
Use um bloco group para agrupar nós relacionados. Os grupos são renderizados como caixas de subgráficos rotuladas no SVG. Um nó pode pertencer a apenas um grupo.
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" }Grupos vs. node.group
Você também pode atribuir um grupo diretamente no nó com group: data_tier. Ambos os estilos são válidos; a lista members do bloco group tem precedência.
Passo 5 — Adicione uma restrição arquitetônica
As restrições são regras arquitetônicas verificadas por máquina. O validador os avalia em relação ao IR e retorna erros E501 quando uma regra é violada.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}A regra database !-> external significa: nenhum nó do tipo database pode ter uma aresta direcionada para qualquer nó do tipo external. Isso bloqueia chamadas diretas acidentais de banco de dados → API de terceiros.
Passo 6 — Adicione dicas de layout e um tema
Controle como o diagrama é organizado com um bloco layout e defina uma paleta de cores com um bloco theme. A verificação de acessibilidade é acionada W602 se alguma cor ficar abaixo do contraste WCAG AA.
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 }
}O contraste WCAG é automático
O exportador DOT escolhe automaticamente a cor da fonte preta ou branca para cada preenchimento de nó usando a fórmula de luminância relativa WCAG 2.1 – nenhuma configuração necessária.
Próximas etapas
- Leia o Language Reference para obter a sintaxe completa de cada tipo de bloco.
- Use o CLI Reference para validar, formatar e exportar a partir da linha de comando.
- Aprenda como embed diagrams in Markdown documentos com o plugin remark ou markdown-it.
Seu diagrama está pronto para renderizar — clique em Renderizar → SVG na barra de ferramentas do editor.