Files
root-at-skic f4663c089d 0.11.1: the arc42 examples cover all twelve sections
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.
2026-11-08 23:10:24 +02:00

81 lines
2.5 KiB
Plaintext

schema_version: 1
diagram_type: architecture
meta:
title: Building blocks, level 1
output: level-1.html
decisions: [timescaledb-for-telemetry]
components:
- ref: heat-pump
pos: [40, 160]
size: [130, 60]
- ref: installer
pos: [40, 360]
size: [130, 60]
- ref: mqtt-broker
pos: [250, 160]
size: [130, 60]
decisions: [mqtt-with-mutual-tls]
- ref: provisioning
pos: [250, 360]
size: [130, 60]
- ref: rules
pos: [460, 60]
size: [130, 60]
- ref: ingest
pos: [460, 160]
size: [130, 60]
- ref: device-registry
pos: [460, 360]
size: [130, 60]
- ref: tsdb
pos: [670, 160]
size: [130, 60]
- ref: device-api
pos: [670, 360]
size: [130, 60]
- ref: ops-dashboard
pos: [880, 160]
size: [130, 60]
- ref: customer-app
pos: [880, 360]
size: [130, 60]
- ref: push-service
pos: [1090, 60]
size: [130, 60]
- ref: ops-engineer
pos: [1090, 160]
size: [130, 60]
- ref: homeowner
pos: [1090, 360]
size: [130, 60]
boundaries:
- kind: region
label: IoT Telemetry
wraps: [mqtt-broker, provisioning, rules, ingest, device-registry, tsdb, device-api, ops-dashboard, customer-app]
connections:
- { from: heat-pump, to: mqtt-broker, label: publish, variant: emphasis, decisions: [mqtt-with-mutual-tls] }
- { from: mqtt-broker, to: ingest, label: subscribe, variant: emphasis }
- { from: ingest, to: tsdb, label: write, variant: emphasis }
- { from: ingest, to: rules, label: stream }
- { from: ingest, to: device-registry, label: lookup, labelAt: [525, 234] }
- { from: rules, to: push-service, label: alert }
- { from: installer, to: provisioning, label: register }
- { from: provisioning, to: mqtt-broker, label: certs, variant: security }
- { from: provisioning, to: device-registry, label: store }
- { from: device-api, to: tsdb, label: read }
- { from: device-api, to: device-registry, label: read }
- { from: tsdb, to: ops-dashboard, label: query }
- { from: customer-app, to: device-api, label: REST }
- { from: ops-engineer, to: ops-dashboard, label: views }
- { from: homeowner, to: customer-app, label: uses }
cards:
- dot: amber
title: 8 Crosscutting concepts
items:
- Device identity, one X.509 certificate per device
- Security, OIDC login for people, mTLS for devices
- Persistence, PostgreSQL dialect for all stores
- Idempotent writes, keyed by device id and timestamp
- Error handling, invalid readings to dead letters
- Observability, metrics and traces on every service