Quick Start
Build your first diagram in six steps
Mulai Cepat
Bangun diagram arsitektur tervalidasi pertama Anda dalam enam langkah. Setiap langkah memperkenalkan satu konsep Datro baru. Pada akhirnya Anda akan memiliki diagram yang lengkap, ditata, dan diperiksa batasannya yang siap diekspor sebagai SVG.
Ikuti di editor langsung — tempel setiap cuplikan dan klik Validasi.
Langkah 1 — Tulis node dan tepi pertama Anda
Setiap file .dtro dimulai dengan header ajaib. Setelah itu, deklarasikan node (entitas) dan tepi (hubungan). Rekatkan ini ke 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 }Diperlukan tajuk ajaib
Baris #!DATRO 1.0 pada baris 1 wajib diisi. Parser mengembalikan E100 jika tidak ada.
Langkah 2 — Tambahkan `attrs` untuk metadata yang lebih kaya
Blok attrs menyimpan metadata nilai kunci yang berubah-ubah. Nilai dapat berupa string, angka, boolean, atau array. Atribut umum adalah tech, owner, deprecated, dan sla.
node backend {
type: service
label: "NestJS API"
attrs {
tech: "nestjs"
owner: "platform-team"
}
}Atribut diteruskan ke JSON IR dan muncul sebagai keterangan alat dalam SVG yang dirender — berguna untuk metadata panggilan dan SLA.
Langkah 3 — Tambahkan metadata tepi
Tepian memiliki jenis (tipe hubungan semantik), label opsional, bobot (lalu lintas relatif), dan tanda async. Tepi asinkron ditampilkan sebagai garis putus-putus.
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 | Tipe hubungan semantik |
label | string | No | — | Teks pendek ditampilkan di garis tepi |
weight | number | No | 1.0 | Bobot lalu lintas relatif — tepi yang lebih berat membuat lebih tebal |
async | boolean | No | false | Jika benar, tepi ditampilkan sebagai garis putus-putus (pola api-dan-lupakan) |
Langkah 4 — Kelompokkan node ke dalam cluster
Gunakan blok group untuk mengelompokkan node terkait. Grup dirender sebagai kotak subgraf berlabel di SVG. Sebuah node hanya dapat dimiliki oleh satu grup.
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" }Grup vs. node.grup
Anda juga dapat menetapkan grup secara langsung pada node dengan group: data_tier. Kedua gaya tersebut valid; daftar members blok group diutamakan.
Langkah 5 — Tambahkan batasan arsitektur
Batasan adalah aturan arsitektur yang diperiksa mesin. Validator mengevaluasinya berdasarkan IR dan mengembalikan kesalahan E501 ketika aturan dilanggar.
constraint {
id: "no-db-external"
rule: "database !-> external"
message: "Databases must not connect to external services"
severity: error
}Aturan database !-> external berarti: tidak ada node bertipe database yang boleh memiliki tepi terarah ke node mana pun bertipe external. Ini memblokir DB langsung yang tidak disengaja → panggilan API pihak ketiga.
Langkah 6 — Tambahkan petunjuk tata letak dan tema
Kontrol bagaimana diagram disusun dengan blok layout dan tentukan palet warna dengan blok theme. Pemeriksaan aksesibilitas mengaktifkan W602 jika ada warna yang berada di bawah kontras 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 }
}Kontras WCAG otomatis
Eksportir DOT secara otomatis memilih warna font hitam atau putih untuk setiap pengisian node menggunakan rumus pencahayaan relatif WCAG 2.1 — tidak diperlukan konfigurasi apa pun.
Langkah selanjutnya
- Baca Language Reference untuk sintaks lengkap setiap jenis blok.
- Gunakan CLI Reference untuk memvalidasi, memformat, dan mengekspor dari baris perintah.
- Pelajari cara embed diagrams in Markdown dokumen dengan plugin komentar atau markdown-it.
Diagram Anda siap dirender — klik Render → SVG di toolbar editor.