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 managed Kubernetes. Multiple pod replicas of each service run across separate physical infrastructure so a single hardware failure does not take a service offline. Cassandra replicates time-series data across three Availability Zones and PostgreSQL replicates across two Availability Zones, so data remains durable and accessible if a single AZ becomes unavailable.

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.

Data stores replicate across multiple Availability Zones for durability:

ComponentReplication strategy
PostgreSQLMulti-AZ replication across two AZs with automatic failover
CassandraReplication factor 3 across three AZs
Apache KafkaTopic replication factor 3
Redis / ValkeyCluster mode with automatic 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 for every service, spread across separate physical infrastructure
  • 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
  • PostgreSQL and Cassandra replicate across Availability Zones for data durability
  • 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.