System Architecture

Owner: Architecture
Reviewers: Backend, Web, Mobile, DevOps
Status: Draft
Version: 0.1
Last Updated: 2026-09-16
Review Cycle: Per architecture change

Overview

AquaX is composed of a NestJS backend API, React web portal, Expo mobile app, PostgreSQL/TimescaleDB database, Redis, MQTT broker, Telegraf and a standalone IoT worker.

flowchart LR
  Web[React Web Portal] --> API[NestJS API]
  Mobile[Expo Mobile App] --> API
  API --> PG[(PostgreSQL / TimescaleDB)]
  API --> Redis[(Redis)]
  API --> Storage[Google Cloud Storage]
  API --> Email[Email Service]
  Device[IoT Devices] --> MQTT[Mosquitto MQTT]
  MQTT --> Telegraf[Telegraf]
  Telegraf --> PG
  PG --> Worker[IoT Worker]
  Worker --> API

Confirmed Architecture References

  • ../current/architecture/backend-architecture.md
  • ../current/architecture/web-architecture.md
  • ../current/architecture/mobile-architecture.md
  • ../current/architecture/iot-mqtt-ingestion-architecture.md
  • ../current/architecture/aquax-timescaledb-telemetry.md

Key Runtime Boundaries

Boundary Responsibility
Backend API Auth, business modules, Prisma access, Swagger, health and integration services.
Web portal Admin/operator UI and role-aware routes.
Mobile app Field and owner-facing role flows.
IoT worker Poll/normalize telemetry and command acknowledgement integration.
Database System of record for business data and telemetry.