1direction: right
2
3vars: {
4 d2-config: {
5 layout-engine: elk
6 }
7}
8
9client: {
10 label: Client
11 style.fill: "#e3f2fd"
12 style.stroke: "#1565c0"
13
14 browser: Browser
15 cli: sbl CLI
16 git: Git Client
17 app: macOS App
18}
19
20edge: {
21 label: Edge Network
22 style.fill: "#fff3e0"
23 style.stroke: "#e65100"
24
25 cf: Cloudflare {
26 smart: Smart Placement
27 cache: Cache API
28 dns: DNS + SSL
29 }
30}
31
32workers: {
33 label: Workers
34 style.fill: "#e8f5e9"
35 style.stroke: "#2e7d32"
36
37 web: sublimated.com (Astro SSR)
38 api: api.sublimated.com
39 git: git worker
40 auth: id.sublimated.com
41 iceberg: iceberg catalog
42 webhooks: webhooks
43 run: run.sublimated.com {
44 dynamic: Dynamic Workers
45 mdx: MDX SSR
46 presentations: Slides
47 }
48}
49
50data: {
51 label: Data
52 style.fill: "#f3e5f5"
53 style.stroke: "#6a1b9a"
54
55 pg: PostgreSQL (Ireland) {
56 shape: cylinder
57 style.fill: "#e1bee7"
58 }
59 r2: R2 CAS (EU) {
60 shape: cylinder
61 style.fill: "#e1bee7"
62 }
63 kv: Workers KV {
64 shape: cylinder
65 style.fill: "#e1bee7"
66 }
67 hyperdrive: Hyperdrive {
68 read: DB_READ (cached)
69 write: DB_WRITE (fresh)
70 }
71}
72
73compute: {
74 label: Compute
75 style.fill: "#fce4ec"
76 style.stroke: "#c62828"
77
78 modal: Modal {
79 typst: Typst Renderer
80 latex: LaTeX Compiler
81 build: Function Builder
82 parquet: Parquet Worker
83 }
84}
85
86client -> edge.cf
87edge.cf -> workers
88workers.api -> data.hyperdrive
89workers.git -> data.hyperdrive
90data.hyperdrive.read -> data.pg
91data.hyperdrive.write -> data.pg
92workers.api -> data.r2
93workers.git -> data.r2
94workers.run -> data.kv
95workers.api -> compute.modal