- .archify content is YAML (JSON still accepted); converted to JSON for the renderer - Archify Diagram custom editor is the default for *.archify; Show Source opens the YAML beside it - YAML syntax errors and validation problems mapped to YAML lines - yamlValidation for schema completion with redhat.vscode-yaml - scripts/to-yaml.mjs converts existing .archify files
166 lines
3.2 KiB
Plaintext
166 lines
3.2 KiB
Plaintext
schema_version: 1
|
|
diagram_type: sequence
|
|
meta:
|
|
title: Cache Miss Request Sequence
|
|
output: examples/sequence-cache-miss-request.html
|
|
viewBox: [1080, 580]
|
|
column_fit: spread
|
|
animation: trace
|
|
quality_profile: showcase
|
|
participants:
|
|
- id: user
|
|
type: external
|
|
label: User
|
|
sublabel: browser session
|
|
- id: web
|
|
type: frontend
|
|
label: Web App
|
|
sublabel: React UI
|
|
- id: api
|
|
type: backend
|
|
label: API
|
|
sublabel: request handler
|
|
- id: auth
|
|
type: security
|
|
label: Auth
|
|
sublabel: JWT verify
|
|
- id: redis
|
|
type: database
|
|
label: Redis
|
|
sublabel: cache
|
|
- id: db
|
|
type: database
|
|
label: Postgres
|
|
sublabel: source of truth
|
|
- id: trace
|
|
type: messagebus
|
|
label: Trace
|
|
sublabel: async event
|
|
segments:
|
|
- from: 150
|
|
to: 250
|
|
label: Request
|
|
- from: 260
|
|
to: 370
|
|
label: Fallback
|
|
- from: 380
|
|
to: 480
|
|
label: Response + trace
|
|
messages:
|
|
- id: open-page
|
|
from: user
|
|
to: web
|
|
y: 160
|
|
label: open page
|
|
variant: default
|
|
- id: dashboard-request
|
|
from: web
|
|
to: api
|
|
y: 185
|
|
label: GET /dashboard
|
|
variant: emphasis
|
|
- id: verify-jwt
|
|
from: api
|
|
to: auth
|
|
y: 210
|
|
label: verify JWT
|
|
variant: security
|
|
- id: auth-claims
|
|
from: auth
|
|
to: api
|
|
y: 238
|
|
label: claims ok
|
|
variant: return
|
|
- id: cache-read
|
|
from: api
|
|
to: redis
|
|
y: 270
|
|
label: read cache
|
|
variant: default
|
|
- id: cache-miss
|
|
from: redis
|
|
to: api
|
|
y: 298
|
|
label: miss
|
|
variant: return
|
|
- id: profile-query
|
|
from: api
|
|
to: db
|
|
y: 330
|
|
label: query profile + metrics
|
|
variant: emphasis
|
|
- id: profile-rows
|
|
from: db
|
|
to: api
|
|
y: 358
|
|
label: rows
|
|
variant: return
|
|
- id: cache-write
|
|
from: api
|
|
to: redis
|
|
y: 390
|
|
label: set cache
|
|
variant: dashed
|
|
- id: trace-emit
|
|
from: api
|
|
to: trace
|
|
y: 418
|
|
label: emit trace
|
|
variant: dashed
|
|
- id: dashboard-response
|
|
from: api
|
|
to: web
|
|
y: 443
|
|
label: 200 JSON
|
|
variant: return
|
|
- id: page-render
|
|
from: web
|
|
to: user
|
|
y: 468
|
|
label: render
|
|
variant: return
|
|
activations:
|
|
- participant: web
|
|
from: 180
|
|
to: 474
|
|
type: frontend
|
|
- participant: api
|
|
from: 185
|
|
to: 450
|
|
type: backend
|
|
- participant: auth
|
|
from: 205
|
|
to: 244
|
|
type: security
|
|
- participant: redis
|
|
from: 265
|
|
to: 304
|
|
type: database
|
|
- participant: db
|
|
from: 325
|
|
to: 364
|
|
type: database
|
|
- participant: trace
|
|
from: 413
|
|
to: 449
|
|
type: messagebus
|
|
cards:
|
|
- dot: emerald
|
|
title: Happy Path
|
|
items:
|
|
- The main request is Web App -> API -> data source -> response
|
|
- Return messages are quieter than forward calls
|
|
- Activation bars make ownership duration visible
|
|
- dot: rose
|
|
title: Policy + Fallback
|
|
items:
|
|
- JWT verification is colored as a security interaction
|
|
- Cache miss is visible without overpowering the main path
|
|
- Database access only appears after cache fallback
|
|
- dot: orange
|
|
title: Async Trace
|
|
items:
|
|
- Trace emission is dashed and secondary
|
|
- It does not block the response path
|
|
- The diagram separates user-facing latency from observability
|