Skip to content

IoT DC3An open-source distributed IoT platform built for AI scenarios

Device connectivity, data collection, operations management, and intelligent analytics for industrial IoT. 28 multi-protocol drivers bring data up from heterogeneous devices; Spring AI lets large language models read that data and drive commands back to devices, closing the sense–decide–act–feedback loop. Distributed, multi-tenant, fully open source.

What is IoT DC3

IoT DC3 is an open-source, distributed IoT platform built for AI scenarios (AGPL-3.0). It covers device connectivity, data collection, operations management, and intelligent analytics for industrial IoT. 28 driver modules pull data up from heterogeneous devices and normalize it into semantically labeled point values; Spring AI then plugs large language models into operations — a model can query devices, read and write points, run commands, analyze alarms, and surface insights, closing the sense–decide–act–feedback loop.

It's a good fit for teams that need to connect many industrial protocols, manage devices and points, query real-time and historical data, and build on the platform within the Spring ecosystem — including bringing AI into operations. To understand the problem it solves and how it compares to alternatives, start with the pitch.

Architecture at a glance

The platform is one gateway, four center services, and a set of protocol drivers. Only the gateway's HTTP port faces outward; the centers talk to each other over gRPC, and drivers and the data center are decoupled through RabbitMQ.

Center Services · gRPC interconnect (Facade: api / grpc / local)Driver Layer · 28+ protocol drivers (gRPC ↔ manager, via RabbitMQ)Observability (optional)HTTP /apiJWT verify gRPCCmd▼▲DataWrite▼▲ReadJDBCmetrics/logsWeb ConsoleVue3 · Vite8 · Element Plus · :8080dc3-cliTypeScript CLI (HTTP)AI Agent / MCP ClientChat · Tool calls · OAuth2dc3-gateway · API Gateway :8000Spring Cloud Gateway (WebFlux) · routing + auth filter + rate limitauth Auth · Tenant · RBAC:8300 / gRPC 9300manager Driver/Device/Point/Profile:8400 / gRPC 9400data Point value · Command · History:8500 / gRPC 9500agentic AI tool calls · Session:8600 · Spring AIRabbitMQ Message Buspoint_value · point_command · result · event · notify | MQTT :1883Modbus TCP / RTUOPCUA / DAS7 PLCSiemensMQTTBroker+ 24 protocolsBACnet·SNMP·IEC104·CoAP…Field DevicesPLC · Sensor · Meter · Gateway (Modbus / OPC / S7 / MQTT)PostgreSQL Storage• TimescaleDB — point values / history (time-series)• pgvector — AI vector search / memory• AGE — graph (device relations)schema:dc3_auth · dc3_manager · dc3_datadc3_agentic · dc3_common:35432 → 5432EMQX · MQTT Broker :31883 · Dashboard :18083 ELK Log PipelineES · Logstash · Kibana :5601 · APMPrometheus + GrafanaMetrics · Dashboards :3000AccessServices / DriversMessage BusData StoreOps (optional)Devices / ExternalAuth flow▼ Command down ▲ Data up

For how each hop works and why it's designed that way, see Architecture.

Tech stack

  • **Language & frameworks **: Java 21 · Spring Boot 4 · Spring Cloud 2025 · Spring AI 2.0.0
  • Data, cache & scheduling: PostgreSQL (+ TimescaleDB / AGE / pgvector) · Caffeine · MyBatis-Plus · Quartz
  • Messaging: RabbitMQ · gRPC · MQTT (Paho + EMQX) · Protobuf
  • Security: Spring Security · JWT · BouncyCastle
  • Frontend: Vue 3 · TypeScript 6 · Vite 8 · Element Plus · AntV G2/G6 (source in dc3-web/ directory of this repo; the standalone iot-dc3-web repo is archived)

See Technology Stack for the full breakdown.

License

IoT DC3 is open source under the AGPL-3.0 License. For licensing details and commercial licensing, see LICENSE.txt.

Released under the AGPL-3.0 License