Services and components
This section describes the implementation at service level. Use it when you need to understand ownership, dependencies, failure behavior, scaling, or the correct place for a code change.
Deployable applications
Section titled “Deployable applications”| Deployable | Responsibility | Direct dependencies | Public ingress |
|---|---|---|---|
web-console | Customer-facing browser UI and static runtime server. | platform-api | Test; Production prepared. |
platform-api | Authentication, authorization, business APIs, audit, and raw-data queries. | PostgreSQL/TimescaleDB | Test and production. |
mqtt-ingestion-worker | Receives the Netmore MQTT feed and publishes neutral raw events. | Netmore MQTT, NATS JetStream | No. |
raw-storage-worker | Stores each distinct raw event and acknowledges it after commit. | NATS JetStream, PostgreSQL/TimescaleDB | No. |
flow-worker | Executes a pinned typed flow after the authoritative raw commit. | NATS JetStream, PostgreSQL/TimescaleDB | No. |
script-sandbox-worker | Isolates future released custom-script execution in QuickJS/WASM. | NATS JetStream | No. |
flow-action-worker | Executes committed E-mail action jobs. | NATS, PostgreSQL, optional SMTP | No. |
docs | Publishes this documentation and the interactive OpenAPI console. | None at runtime | Test and production. |
Jobs and stateful components
Section titled “Jobs and stateful components”| Component | Responsibility |
|---|---|
| Database migration Job | Applies append-only SQL migrations before application rollout. |
| Raw-stream bootstrap Job | Creates or compatibly updates the JetStream stream and durable consumer. |
| Raw-retention CronJob | Removes expired raw records and delivered outbox events in bounded batches. |
| PostgreSQL/TimescaleDB | Authoritative relational, audit, raw-ingestion, and future measurement storage. |
| NATS JetStream | Bounded durable buffer between MQTT reception and raw storage. |
Argo CD, OpenBao, External Secrets Operator, Reloader, Traefik, cert-manager, GHCR, and GitHub Actions support these workloads. They are mapped in Platform components.
End-to-end paths
Section titled “End-to-end paths”Administrative request:
Browser -> web-console -> platform-api -> authorization -> repository -> PostgreSQL transaction + audit -> HTTP responseRaw telemetry reception:
Netmore MQTT -> mqtt-ingestion-worker -> NATS JetStream -> raw-storage-worker -> TimescaleDB raw row + outbox -> raw-stored stream -> flow-worker -> current values + measurements + E-mail jobs + action outbox -> flow-action-workerThe three flow workers are implemented and rendered by Helm but disabled by default until the environment rollout gates are approved. See Versioned Telemetry Flows for the exact implemented boundary and remaining production gates.