Skip to content

Commit dced5fd

Browse files
committed
docs: add runtime architecture diagram
1 parent 69b9135 commit dced5fd

4 files changed

Lines changed: 1300 additions & 0 deletions

File tree

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
1616
Stacks is a rapid development framework, where the goal is to _help you_ create & maintain frontends, backends, and clouds—without having to worry about the boilerplate. _An all-in-one toolkit that meets all your full stack needs._
1717

18+
[![Stacks runtime architecture](./docs/diagrams/stacks-runtime.png)](./docs/diagrams/stacks-runtime.html)
19+
20+
_Open the diagram for light and dark themes plus SVG, PNG, JPEG, and WebP exports._
21+
1822
- Web & Desktop Applications _(including system tray apps)_
1923
- Serverless & Traditional APIs
2024
- Cloud Infrastructure Creation & Maintenance
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
"schema_version": 1,
3+
"diagram_type": "architecture",
4+
"meta": {
5+
"title": "Stacks Runtime Architecture",
6+
"subtitle": "One TypeScript framework from local development to cloud deployment",
7+
"output": "stacks-runtime.html",
8+
"viewBox": [1220, 760]
9+
},
10+
"layout": {
11+
"mode": "grid",
12+
"cols": 7,
13+
"origin": [45, 130],
14+
"gapX": 45,
15+
"gapY": 100,
16+
"cellW": 120,
17+
"cellH": 60
18+
},
19+
"components": [
20+
{ "id": "developer", "type": "external", "label": "Developer", "sublabel": "TypeScript project", "row": 0, "col": 0 },
21+
{ "id": "buddy", "type": "backend", "label": "Buddy CLI", "sublabel": "dev / build / deploy", "row": 0, "col": 1 },
22+
{ "id": "cloud", "type": "cloud", "label": "Stacks Cloud", "sublabel": "server or serverless", "row": 0, "col": 6 },
23+
{ "id": "browser", "type": "frontend", "label": "Web Client", "sublabel": "browser", "row": 1, "col": 0 },
24+
{ "id": "proxy", "type": "security", "label": "rpx + tlsx", "sublabel": "pretty HTTPS URLs", "row": 1, "col": 1 },
25+
{ "id": "stx", "type": "frontend", "label": "stx", "sublabel": "views + components", "row": 1, "col": 2 },
26+
{ "id": "router", "type": "backend", "label": "Router", "sublabel": "routes + middleware", "row": 1, "col": 3 },
27+
{ "id": "actions", "type": "backend", "label": "Actions", "sublabel": "application logic", "row": 1, "col": 4 },
28+
{ "id": "orm", "type": "backend", "label": "ORM", "sublabel": "models + queries", "row": 1, "col": 5 },
29+
{ "id": "database", "type": "database", "label": "Database", "sublabel": "SQLite / SQL / DynamoDB", "row": 1, "col": 6 },
30+
{ "id": "craft", "type": "frontend", "label": "Craft", "sublabel": "desktop + tray", "row": 2, "col": 0 },
31+
{ "id": "events", "type": "messagebus", "label": "Events + Queues", "sublabel": "async application work", "row": 2, "col": 4 },
32+
{ "id": "workers", "type": "backend", "label": "Workers", "sublabel": "jobs + schedules", "row": 2, "col": 5 }
33+
],
34+
"boundaries": [
35+
{ "kind": "region", "label": "Stacks application runtime", "wraps": ["stx", "router", "actions", "orm", "database", "events", "workers"], "pad": 24 }
36+
],
37+
"connections": [
38+
{ "from": "developer", "to": "buddy", "variant": "emphasis" },
39+
{ "from": "buddy", "to": "cloud", "label": "provision + deploy", "variant": "dashed" },
40+
{ "from": "browser", "to": "proxy", "label": "HTTPS", "variant": "security" },
41+
{ "from": "craft", "to": "proxy", "label": "HTTPS", "variant": "security" },
42+
{ "from": "proxy", "to": "stx", "variant": "emphasis" },
43+
{ "from": "stx", "to": "router" },
44+
{ "from": "router", "to": "actions" },
45+
{ "from": "actions", "to": "orm" },
46+
{ "from": "orm", "to": "database", "label": "typed queries", "labelDy": 54 },
47+
{ "from": "actions", "to": "events", "label": "dispatch", "variant": "dashed", "fromSide": "bottom", "toSide": "top", "labelDy": 24 },
48+
{ "from": "events", "to": "workers", "variant": "dashed" },
49+
{ "from": "workers", "to": "cloud", "variant": "dashed", "fromSide": "right", "toSide": "bottom", "route": "orthogonal-h" }
50+
],
51+
"cards": [
52+
{ "dot": "cyan", "title": "One application model", "items": ["stx UI and router actions share TypeScript", "Craft reuses the same pretty HTTPS application URLs"] },
53+
{ "dot": "emerald", "title": "Data and async work", "items": ["Model-driven migrations feed the ORM", "Events, queues, jobs, and schedules stay first-party"] },
54+
{ "dot": "amber", "title": "Operations", "items": ["Buddy owns development, builds, diagnostics, and releases", "Stacks Cloud provisions server and serverless targets"] }
55+
]
56+
}

0 commit comments

Comments
 (0)