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.
76 lines
2.5 KiB
Plaintext
76 lines
2.5 KiB
Plaintext
schema_version: 1
|
|
elements:
|
|
mqtt-broker:
|
|
type: messagebus
|
|
label: MQTT broker
|
|
sublabel: mutual TLS
|
|
description: >
|
|
Responsibility: terminates device connections, one topic per device.
|
|
Interfaces: provides MQTT 8883 with mTLS; requires certs and
|
|
revocation checks from Provisioning.
|
|
ingest:
|
|
type: backend
|
|
label: Ingest
|
|
sublabel: Go
|
|
brand: go
|
|
description: >
|
|
Responsibility: decodes, validates and stores telemetry.
|
|
Interfaces: requires MQTT subscription, TSDB, device registry;
|
|
provides the reading stream to the rules engine.
|
|
diagram: 0500-building-blocks/ingest.archify
|
|
tsdb:
|
|
type: database
|
|
label: Time series DB
|
|
sublabel: TimescaleDB
|
|
brand: postgresql
|
|
description: >
|
|
Responsibility: raw telemetry 90 days, hourly rollups 10 years.
|
|
Interfaces: provides SQL on 5432 to Device API and dashboard;
|
|
requires batched writes from Ingest.
|
|
rules:
|
|
type: backend
|
|
label: Rules engine
|
|
sublabel: alerting
|
|
description: >
|
|
Responsibility: evaluates thresholds and fault codes, raises alerts.
|
|
Interfaces: requires the reading stream from Ingest;
|
|
provides alerts to the push service and service desk.
|
|
provisioning:
|
|
type: security
|
|
label: Provisioning
|
|
sublabel: device certs
|
|
description: >
|
|
Responsibility: registers devices and issues client certificates.
|
|
Interfaces: provides a REST register call for installers and
|
|
revocation checks for the broker; requires the device registry.
|
|
device-registry:
|
|
type: database
|
|
label: Device registry
|
|
sublabel: PostgreSQL
|
|
brand: postgresql
|
|
description: >
|
|
Responsibility: devices, owners, firmware and certificate state.
|
|
Interfaces: provides SQL on 5432 to Ingest, Provisioning, Device API.
|
|
device-api:
|
|
type: backend
|
|
label: Device API
|
|
sublabel: REST
|
|
description: >
|
|
Responsibility: serves telemetry and device data to the customer app.
|
|
Interfaces: provides REST over HTTPS; requires TSDB and device registry.
|
|
ops-dashboard:
|
|
type: frontend
|
|
label: Ops dashboard
|
|
sublabel: Grafana
|
|
brand: grafana
|
|
description: >
|
|
Responsibility: fleet view for the operations team.
|
|
Interfaces: provides web UI over HTTPS; requires read-only SQL on TSDB.
|
|
customer-app:
|
|
type: frontend
|
|
label: Customer app
|
|
sublabel: mobile
|
|
description: >
|
|
Responsibility: shows the homeowner their heat pump and alerts.
|
|
Interfaces: provides the mobile UI; requires Device API and push.
|