How xiaofeiliu200412/thingsboard works
ThingsBoard is an IoT platform for collecting, processing, visualizing, and managing device data. A principal workflow is device telemetry entering the platform, being processed by the rule engine, and becoming data users can query and visualize. The repository also includes entity and alarm querying, device-management APIs, and dashboards. The README documents product capabilities; sampled source confirms query-service-to-DAO behavior and queue-consumer dispatch to actors. Other subsystem links below are documented at a high level or left unverified where source was not sampled.
Main entry points: dao Persistence Services · rule-engine Rule Engine · controller REST APIs · DefaultEntityQueryService.java Entity Query Service
Components 17
Device Ingestion
- Device Transports
common/transport - Message Queues
common/queue
Message Processing
- Core Consumers
application/src/main/java/org/thingsboard/server/service/queue - Rule Consumers
application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java - Actor System
application/src/main/java/org/thingsboard/server/actors - Rule Engine
rule-engine - Rule Scripting
application/src/main/java/org/thingsboard/server/service/script
Data Services
- Entity Domain
common/data/src/main/java/org/thingsboard/server/common/data - Persistence Services
dao/src/main/java/org/thingsboard/server/dao - Entity Query Service
application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java - Entity Query Repository
dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java
User Experience
- REST APIs
application/src/main/java/org/thingsboard/server/controller - Authentication
application/src/main/java/org/thingsboard/server/service/security/auth - Dashboards
ui-ngx/src/app/modules/home/pages/dashboard - Data Visualization
ui-ngx/src/app
Other components
- IoT Devices
- Platform Users
Connections 16
- IoT Devices → Device Transports: send telemetry
- Device Transports → Message Queues: collect data
common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java - Message Queues → Rule Consumers: deliver messages
application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java - Rule Consumers → Actor System: dispatch messages
application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java - Actor System → Rule Engine: process rules
- Rule Engine → Rule Scripting: run scripts
- Rule Engine → Persistence Services: process data
- Platform Users → REST APIs: manage devices
- Platform Users → Authentication: authenticate
- REST APIs → Persistence Services: manage entities
- REST APIs → Entity Query Service: query data
- Entity Query Service → Persistence Services: fetch entities
application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java - Entity Query Repository → Persistence Services: query storage
dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java - Platform Users → Dashboards: view dashboards
- Dashboards → Data Visualization: visualize data
- Data Visualization → Entity Query Service: request data