Skip to content

Press ESC to close

Or check our Popular Categories...

Published architecture exploration

Generic IoT Skeleton

A reusable IoT design with separate ingestion paths, an ETL layer, application services, internal messaging, and a notification hub.

My role
Independent architecture & development
Context
Personal project · Published design
Focus
Push/pull ingestion · ETL · Service boundaries
Original IoT architecture: sensors connect with a gateway using a broker, REST API, or triggers; ETL connects to databases; a separate internal broker connects ETL, backend, and notifications; frontend and notification hub serve end users.
My original published diagram from “Microservice Project Architecture – Generic IoT Skeleton.” This is a proposed reusable architecture, rather than a deployment record.Open full-size diagram

A reusable foundation for different IoT data sources

This architecture exploration asks how common IoT data-flow responsibilities can be organized into a reusable starting point. The original design covers collection, ETL, storage, application access, and notifications, while allowing the components to vary with the domain.

The diagram above is the original architecture from my published IoT design article.

Two ingestion modes meet at the data gateway

Device-driven · Broker or HTTP
The proposal accepts device/edge-driven data through a broker such as EMQX or Kafka, or through HTTP.
Host-driven · Trigger or scheduler
Scheduled collection is represented by triggers such as an Azure Function or schedulers such as Hangfire and Quartz.
ETL · Extract, transform, load
The gateway connects to the ETL responsibility, which handles the data-flow work before the application consumes it.
Storage · Relational and cache options
The design lists PostgreSQL with TimescaleDB or SQL Server, alongside Redis in the platform's in-memory data responsibilities.

Keep ingestion, internal messaging, and notification concerns distinct

Data gateway broker
The external-facing gateway accepts device data and host-driven inputs.
Internal-purpose broker
A separate broker connects the ETL, backend, and notification responsibilities. The proposal lists EMQX/MQTT or Kafka as options.
Application and web tiers
The API/app tier includes Redis and Lazy Cache. The user-facing tier includes web/mobile applications, Grafana, and Angular or React options.
Notification hub
The proposed notification responsibility has its own Redis store, alert rules, and email, SMS, and push-notification channels.

Separating these responsibilities is the central design idea: collection, transformation, application access, and notification processing can be considered independently as the solution evolves.

Published design, implementation scope, and future work

This is a personal architecture and development exploration. The published diagram documents a proposed generic starting point whose final components depend on the target system's requirements.

The original article identifies source IP allowlisting, payload compression, and encryption as future considerations. They remain design considerations in this case study.

For a concrete enterprise monitoring delivery, see CFEMS. For the full background and original component list, read the architecture article.

Let's connect

Have a complex problem to solve?

Let's talk about software, architecture, applied AI, or technical delivery.

Get in touch