Numbered cards for the text sections (1.1-1.3, 2, 4, 11, 12) on the overview, domain interfaces on the technical context, black-box descriptions for every building block, blocks mapped to nodes in the deployment view, crosscutting concepts on level 1, and a 1000-quality folder with the quality tree. The example test checks each section's card.
67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
schema_version: 1
|
|
diagram_type: architecture
|
|
meta:
|
|
title: Building blocks - level 1
|
|
output: level-1.html
|
|
decisions: [booking-owns-seat-inventory]
|
|
components:
|
|
- ref: web
|
|
pos: [40, 110]
|
|
size: [130, 60]
|
|
- ref: mobile
|
|
pos: [40, 210]
|
|
size: [130, 60]
|
|
- ref: scanner
|
|
pos: [40, 360]
|
|
size: [130, 60]
|
|
- ref: booking
|
|
pos: [250, 160]
|
|
size: [130, 60]
|
|
- ref: seatlock
|
|
pos: [460, 60]
|
|
size: [130, 60]
|
|
- ref: db
|
|
pos: [460, 260]
|
|
size: [130, 60]
|
|
- ref: ticketing
|
|
pos: [250, 360]
|
|
size: [130, 60]
|
|
- ref: possync
|
|
pos: [670, 260]
|
|
size: [130, 60]
|
|
- ref: psp
|
|
pos: [900, 160]
|
|
size: [150, 60]
|
|
- ref: pos
|
|
pos: [900, 260]
|
|
size: [150, 60]
|
|
- ref: mail
|
|
pos: [900, 460]
|
|
size: [150, 60]
|
|
boundaries:
|
|
- kind: region
|
|
label: Cinema Tickets
|
|
wraps: [web, mobile, scanner, booking, seatlock, db, ticketing, possync]
|
|
connections:
|
|
- { from: web, to: booking, label: JSON, variant: emphasis }
|
|
- { from: mobile, to: booking, label: JSON }
|
|
- { from: booking, to: seatlock, label: hold }
|
|
- { from: booking, to: db, label: SQL }
|
|
- { from: booking, to: psp, label: checkout, variant: security }
|
|
- { from: booking, to: ticketing, label: issue, labelAt: [315, 234] }
|
|
- { from: scanner, to: ticketing, label: check-in }
|
|
- { from: ticketing, to: db, label: SQL }
|
|
- { from: ticketing, to: mail, label: QR mail }
|
|
- { from: possync, to: db, label: SQL }
|
|
- { from: possync, to: pos, label: sales, decisions: [booking-owns-seat-inventory] }
|
|
cards:
|
|
- dot: amber
|
|
title: 8 Crosscutting concepts
|
|
items:
|
|
- "Persistence: PostgreSQL is the truth; Redis only for holds"
|
|
- "Security: OIDC for staff apps; card data never stored"
|
|
- "Errors: idempotency keys; failed webhooks are retried"
|
|
- "Times in UTC; shown in cinema local time"
|
|
- "QR payload signed with an Ed25519 key"
|
|
- "Structured logs with order id as trace key"
|