Skip to content
Stand with Ukraine flag

Cloud Architecture

ThingsBoard Cloud is a fully managed IoT platform running the same Professional Edition codebase, deployed as a microservices cluster. Two independent regional instances provide complete data isolation and geographic proximity for your devices.

ThingsBoard Cloud operates two independent regions. Each region is a fully self-contained deployment — its own Kubernetes cluster, databases, message queues, and caches. The regions share no data with each other.

North America (NA)Europe (EU)
URLthingsboard.cloudeu.thingsboard.cloud
Cloud providerAWSAWS
Data isolationComplete — no data shared with EUComplete — no data shared with NA

Regional independence means a failure or maintenance event in one region does not affect the other.

Each region runs on AWS Elastic Kubernetes Service (EKS) spanning multiple Availability Zones (AZs). If an entire AZ goes down, services continue running in the remaining AZs without manual intervention.

All ThingsBoard services are stateless Kubernetes pods. Kubernetes handles:

  • Auto-restart — failed pods are restarted automatically
  • Rescheduling — pods from unhealthy nodes move to healthy ones
  • Scaling — pod replicas scale based on CPU, memory, and connection metrics

ThingsBoard Cloud runs as independent microservices, each scaling separately based on load:

ServiceResponsibility
MQTT TransportAccepts device connections over MQTT, authenticates credentials, pushes messages to the rule engine
HTTP TransportAccepts device data over HTTP/HTTPS
CoAP TransportAccepts device data over CoAP
LwM2M TransportManages LwM2M device registration, observation, and firmware updates
SNMP TransportPolls SNMP-enabled devices for telemetry
ThingsBoard NodeCore service — REST API, WebSocket subscriptions, Rule Engine, entity management, device connectivity state
JS ExecutorExecutes user-defined JavaScript and TBEL scripts from rule engine nodes in isolated sandboxes
Integration ExecutorRuns platform integrations (OPC-UA, SigFox, TheThingsNetwork, etc.), pulling data from external systems into ThingsBoard
Web UIServes the Angular-based dashboard application, proxies REST/WebSocket requests to ThingsBoard Node

Each transport protocol runs as its own set of pods — MQTT can scale independently from HTTP or CoAP based on your device fleet composition. See the individual API references for protocol details: MQTT API, HTTP API, CoAP API, LwM2M API.

When a device sends data, it follows this path:

  1. Connect — Device opens a connection to a Transport pod (MQTT, HTTP, CoAP, or LwM2M).
  2. Authenticate — Transport validates device credentials against the Core service. Valid credentials are cached to avoid a database query on every message.
  3. Push to Rule Engine — Transport converts the protocol-specific payload into a unified message and forwards it to the Rule Engine via the message queue (Kafka).
  4. Execute Rule Chains — The Rule Engine processes the message through your configured rule chains — filtering, enriching, transforming, and triggering actions.
  5. Persist — Action nodes save telemetry, attributes, or alarms to the database.
  6. Notify — Core pushes real-time updates to WebSocket subscribers (dashboards).

ThingsBoard Cloud uses purpose-built databases for each workload:

DatabaseWhat it storesReplication
PostgreSQL (main)Entities, attributes, relations, alarms, system dataMulti-AZ replication
CassandraTime-series telemetryReplication factor 3 across AZs
PostgreSQL (events)Debug events, audit logs, lifecycle eventsMulti-AZ replication

The events database is separate from the main PostgreSQL instance. This isolation prevents debug event spikes — such as enabling debug mode on a busy rule chain — from affecting entity query latency.

Every data store replicates across multiple Availability Zones:

ComponentReplication strategy
PostgreSQLMulti-AZ replication with automatic failover
CassandraReplication factor 3 across AZs
Apache KafkaTopic replication factor 3 across AZs
Redis / ValkeyCluster mode with AZ-aware failover

Automated daily backups with point-in-time recovery are configured for all databases.

ThingsBoard Cloud scales horizontally at every layer:

  • Transport pods scale based on active device connections and message throughput
  • ThingsBoard Node pods scale based on REST API load, WebSocket subscriptions, and rule engine processing
  • JS Executor pods scale based on script evaluation queue depth
  • Kafka partitions distribute rule engine load evenly across ThingsBoard Node pods
  • Cassandra nodes scale linearly — adding nodes increases both storage capacity and write throughput

The architecture eliminates single points of failure:

  • Multiple pod replicas run across AZs for every service
  • Kubernetes auto-restarts failed pods and reschedules them to healthy nodes
  • Kafka rebalances partitions when a consumer pod fails — other pods pick up the load
  • Load balancers distribute device connections and API requests across healthy pods
  • Regional independence — an incident in one region does not affect the other

ThingsBoard Cloud handles all infrastructure operations:

ResponsibilitySelf-hostedCloud
Kubernetes cluster provisioning and upgradesYouThingsBoard
PostgreSQL administration and replicationYouThingsBoard
Cassandra cluster management and tuningYouThingsBoard
Kafka cluster operationsYouThingsBoard
Redis / Valkey cache managementYouThingsBoard
Operating system patchingYouThingsBoard
Database backups and recoveryYouThingsBoard
Infrastructure monitoring and alertingYouThingsBoard
SSL/TLS certificate managementYouThingsBoard
Platform version upgradesYouThingsBoard
Load balancer configurationYouThingsBoard

You focus on building your IoT solution — devices, rule chains, dashboards, and integrations. ThingsBoard manages everything else.