Skip to content

5.1 Overall Architecture and Core Components of the Platform Layer

5.1.1 The Layered Architecture of IoT Platforms

From field devices to business applications, data must pass through a chain stitched together from different technology stacks. The industry convention is to abstract this chain into four standard layers — the sensing layer, the network layer, the platform layer, and the application layer. The layers have clear responsibility boundaries, though in actual deployments those boundaries can blur because of factors such as edge computing. The platform layer sits in the middle: it masks low-level hardware differences from the layers above, encapsulates application-logic changes from the layers below, and serves as the information hub of the entire system.

The sensing layer sits closest to the physical world, covering all kinds of sensors, actuators, and RFID readers. These devices are resource-constrained and communicate in different ways: some output 4–20 mA analog signals, some use the RS485 digital bus, and still others rely on wireless LAN protocols. In a smart factory, a single device may output several kinds of signals at once, and the sensing layer must complete signal acquisition and initial conditioning. Chapter 3 already discussed sensor selection and the on-device AI trend in detail, so this section does not expand on them.

The network layer moves the data of the sensing layer up to the platform layer. It spans short-range wireless LANs and long-range cellular / LPWAN (Low-Power Wide-Area Network). The network layer must solve data integrity over unstable connections: when a remote wind farm loses its network connection, the edge gateway must cache data locally and backfill the uploads after recovery. The network layer's design directly affects the reliability of upstream messages — a topic discussed further in Section 5.2.3 on fault-tolerant data transmission.

The platform layer is the focus of this chapter. It receives the data that devices report from the network layer and carries out protocol adaptation, message-queue buffering, data persistence, rule evaluation, device management, and other tasks. The platform layer's core mission is to upgrade an IoT system from "getting data onto a server" to "turning data into usable services." Its main functional modules include:

  • Device access: provides unified device registration, authentication, and authorization. On lightweight devices, MQTT is the common protocol; for even more constrained scenarios, CoAP (Constrained Application Protocol) is another option. Platforms usually need to implement a multi-protocol gateway on the server side, or complete protocol conversion at the edge.
  • Data aggregation: unifies device data from different sources and in different formats into a thing model, then pushes it to the message queue. The message queue is the data pipeline's first buffering layer, smoothing peaks and troughs and preventing backend overload. Message-queue selection and characteristics are dissected separately in Section 5.1.2.
  • Rule engine: lets users define "if … then …" logic to evaluate and respond to real-time data. The rule engine can be deployed in the platform layer's cloud, or pushed down to edge nodes. For example, when a vibration sensor's amplitude exceeds a preset threshold, the rule engine can automatically trigger an alarm notification or invoke a cloud function to execute follow-up actions.
  • Data storage: most IoT data is timestamped series data, which is why the time-series database (TSDB) has become platform-layer infrastructure. The platform layer usually also integrates a relational database to store device metadata and configuration.
  • Application enablement: opens data and capabilities to upper-layer applications through RESTful APIs, data subscriptions, visualization components, and similar means. The application layer can build dashboards, mobile apps, or AI analysis models on top of these interfaces.

The application layer is the interface users interact with directly — monitoring dashboards, operations systems, enterprise-system integration, AI anomaly-detection models, and more. The application layer uses the APIs exposed by the platform layer to fetch real-time and historical data, and combines them with business logic to realize the final value. A factory's OEE (Overall Equipment Effectiveness) dashboard, for example, is computed by the application layer after pulling output, downtime, and other data from the platform layer. The concrete mechanisms for integrating AI models with the platform layer are developed in detail in Chapter 7, on AIoT and AI agent applications.

The layered diagram below summarizes this model.

Figure 5-1 Layered IoT Platform ArchitectureThe platform layer bridges: data converges upward, commands pass downward.Figure 5-1 Layered IoT Platform ArchitectureThe platform layer bridges: data converges upward, commands pass downward.Data upControl downApplication LayerDashboards · Apps · AI Models · Enterprise IntegrationPlatform LayerDevice AccessProtocol AdaptationMessage ProcessingQueue BufferingStorageTime-Series / Relational DBApp EnablementAPI / SubscriptionNetwork LayerWLAN · Cellular / LPWAN · WiredSensing LayerSensors · Actuators · RFIDData flow (upstream data)Control flow (downlink commands)Platform-layer processing orderFigure 5-1 Layered IoT platform architecture: the sensing layer digitizes physical signals and sends them through the network layer to the platform, which performs protocol conversion, message buffering, rule evaluation, and storage, then exposes them via APIs to the application layer for human-machine interaction and decision support.
Figure 5-1 Layered IoT Platform Architecture

This four-layer model maps with high consistency onto the IoT platforms of different cloud vendors. From engineering practice, the IoT platforms of the major cloud vendors (AWS IoT Core, Azure IoT Hub, and Alibaba Cloud IoT, for example) are highly consistent in their layered architecture; the differences show up mainly in details such as authentication methods, the device shadow, and message-routing policy. AWS IoT Core, for example, provides a device gateway and a rule engine that can route messages to Lambda or Kinesis; Azure IoT Hub emphasizes device management and message routing and supports integration with Event Hubs; Alibaba Cloud IoT integrates device access, data flow, and a time-series database. Although the architectural details differ, the layered logic always follows the main line of device → transport → processing → application. This strong commonality reflects the shared demands that IoT scenarios place on real-time performance, reliability, and scalability.

The platform layer's boundary sometimes blurs in practice: when edge nodes perform data filtering and local control, they carve out a gray zone between the "platform layer" and the "network layer." Section 5.3 is devoted to the edge-cloud collaboration model. Before stepping into the edge, understanding the four-layer model above is the foundation for building any IoT system — it helps you judge which component is responsible for device connectivity, which for data cleansing, and which for storage and distribution. Once the layers are clear, later selection and architecture decisions have something to stand on.

5.1.2 Core Components: Message Queue, Time-Series Database, Rule Engine

Once the layered skeleton is in place, three core components are what actually keep the data pipeline running: the message queue, the time-series database, and the rule engine. They solve the problems of data buffering, efficient storage, and intelligent judgment, respectively. Selection and deployment decisions directly determine the platform layer's throughput ceiling, storage cost, and response time.

Message Queue: The Buffer Zone of Data Flow

The rhythm at which devices report data and the rhythm at which the cloud consumes it are hard to keep fully in sync. Devices may upload a concentrated batch of backlogged data after a network recovery, or report at a fixed frequency under normal operating conditions. If cloud applications connect to devices directly, a large-scale device onboarding or a sudden traffic flood can overwhelm backend services in an instant. The message queue is a buffer inserted between the two.

Message queues commonly use the publish/subscribe pattern: the device, as producer, sends data to a logical channel (a topic); after subscribing to the topic, consumers pull data from the queue asynchronously. Producer and consumer are decoupled in both time and space — the device does not need to know who is consuming its data, and the consumer does not need to wait for the device to respond.

In IoT scenarios, MQTT (Message Queuing Telemetry Transport) is one of the most common lightweight protocols on the device side. It was designed for embedded environments with low bandwidth, high latency, and unstable networks: the header overhead is tiny, it supports three quality-of-service levels (QoS 0/1/2), and it carries a large volume of messages over a single long-lived connection. Devices with ample resources (a Linux gateway, say) can integrate an MQTT client SDK directly; resource-constrained MCUs can also connect through a stripped-down MQTT library. Below is a publish/subscribe example using the Python paho-mqtt library:

python
import paho.mqtt.client as mqtt
import time

# Publisher side
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.publish("sensor/temperature", payload="25.3", qos=1)

client_pub = mqtt.Client()
client_pub.on_connect = on_connect
client_pub.connect("mqtt.example.com", 1883, 60)
client_pub.loop_start()
time.sleep(1)
client_pub.loop_stop()

# Subscriber side
def on_message(client, userdata, msg):
    print(f"{msg.topic}: {msg.payload.decode()}")

client_sub = mqtt.Client()
client_sub.on_connect = lambda c, u, f, rc: c.subscribe("sensor/temperature")
client_sub.on_message = on_message
client_sub.connect("mqtt.example.com", 1883, 60)
client_sub.loop_forever()

Once messages move from the device side into the backend, the focus of queue selection shifts to throughput and persistence strategy. Kafka (Apache Kafka, a distributed message-streaming platform) achieves high write throughput with sequential disk writes and partitioning, fitting backend pipelines that carry continuous reports from massive device fleets; RabbitMQ (an open-source message broker built on the AMQP 0-9-1 protocol) emphasizes flexible routing and message acknowledgment, fitting business integrations that need fine-grained control over message flow. The table below shows the typical differences among MQTT Broker (as the message-queue broker), Kafka, and RabbitMQ in IoT scenarios across several key dimensions. The comparison given here is qualitative: actual performance depends heavily on hardware, network, and configuration, so selection should be validated with load tests.

DimensionMQTT Broker (message-queue broker)KafkaRabbitMQ
Protocol positioningLightweight device-side publish/subscribe brokerDistributed message-streaming platformGeneral-purpose message broker
Write throughputHigh (session- and message-cache-based)Extremely high (parallel partitioned writes)Medium-high (depends on queue count and acknowledgment mode)
End-to-end latencyLow (push mode over long-lived connections)Medium (batch pulling introduces buffering)Low (supports push mode and acknowledgments)
Message persistenceDepends on broker session storage and retention policySequential disk writes + log compactionQueue/message persistence flags
Typical scenariosMassive long-lived device connections, low bandwidth, command deliveryBackend data pipelines, stream-processing inputComplex routing, business-system integration
Typical deployment locationEdge gateway or cloud access layerData center or public cloudCloud application layer

The three are not mutually exclusive. In a common architecture, the MQTT broker receives device messages and then distributes them through Kafka or RabbitMQ to downstream consumers. The message queue's throughput determines the write pressure on the time-series database that follows, so it is usually the platform layer's first selection to settle.

Time-Series Database: Optimized for Timestamps

The data format reported by IoT devices is remarkably fixed: each data point carries a timestamp, a set of tags (device ID, location, and so on), and several numeric fields (temperature, vibration frequency). Such data is inherently a time series. Traditional relational databases use row storage; when performing efficient range queries by timestamp, they must traverse large numbers of irrelevant columns, which performs poorly. For such scenarios, a TSDB does two things: rework the storage engine, and push write-side compression to the extreme.

Take InfluxDB as an example: its homegrown TSM engine (Time-Structured Merge Tree) of the 1.x/2.x era is essentially a variant of the LSM-Tree (Log-Structured Merge-Tree). Newly written data is first cached in an in-memory write-ahead log (WAL); once enough has accumulated, it is merged to disk in batches, keeping performance stable under sustained high-frequency writes. For numeric-field storage, InfluxDB applies delta encoding and delta-of-delta compression — the differences between adjacent timestamps are tiny, and storing only the differences significantly reduces storage space. The compression ratio depends heavily on how much the data fluctuates, but it usually cuts disk usage sharply. The version coordinates need an update: in April 2025, InfluxDB 3.x reached general availability (GA), with its storage and query layers rewritten in Rust, Apache Arrow/Parquet adopted as the storage foundation and DataFusion as the query engine, while remaining compatible with line-protocol writes; the open-source edition limits hot data to 72 hours, and longer retention requires the enterprise edition or a self-built downsampling-and-archiving pipeline. The "TICK stack" — so named in its early years alongside Telegraf, Chronograf, and Kapacitor — has become a historical term, and the official toolchain has been reorganized around 3.x.

TimescaleDB takes another path: built on PostgreSQL, it delivers time-series capability as a plugin. It introduces the hypertable concept, automatically splitting a large table into multiple partitions (chunks) by time; a query scans only the chunks that cover the time range involved and skips the irrelevant partitions. Its advantage is SQL compatibility — operators do not need to learn an entirely new syntax. For scenarios with moderate data volume and complex query conditions, TimescaleDB offers both SQL flexibility and the query-pruning benefits that partitioning brings.

Choosing InfluxDB or TimescaleDB depends on the team's technology stack. If the team knows PostgreSQL well and the total data volume is controllable, TimescaleDB reduces migration cost; if you face write-intensive scenarios with tight storage space, InfluxDB's TSM engine and aggressive compression may be the better choice. But no time-series database leads across the board in every scenario — selection must be validated with load tests against real business workloads.

Rule Engine: From Simple Thresholds to Complex Event Processing

With the data delivered somewhere, the next need is to judge whether it is abnormal. The rule engine is that judge. The simplest rule is a threshold trigger: raise an alarm when the temperature exceeds 80 °C. This kind of computation can be done in edge nodes or in cloud-side stream processing alike, with no extra components required.

More complex business scenarios involve temporal relationships and logical combinations among multiple events. For example: a motor that shows three current spikes within 5 minutes, accompanied by one temperature rise, may be signaling bearing failure. This is beyond what a single-point threshold can handle and calls for complex event processing (CEP). A CEP engine supports pattern matching over event streams within time windows — define that event B occurs within 3 seconds after event A, and when the condition is met, a compound event fires.

The rule engine takes two common forms in actual deployment. For scenarios that require millisecond-level response (cutting power to a dangerous device, say), rules should be pushed down to edge nodes to avoid network round-trip latency. For rules with a large analysis span that depend on historical data (computing average load hour by hour, say), cloud execution works. Platform-layer architectures usually support flexible deployment: the rule engine can be deployed at the edge or centrally in the cloud, depending on latency requirements and resource constraints.

These three components — the message queue buffering traffic, the time-series database storing efficiently, the rule engine judging intelligently — form the platform layer's core capabilities. Their selections influence one another: the message queue's throughput determines the time-series database's write pressure, and the rule engine's real-time performance depends on the queue's latency. In engineering practice, the message queue is usually selected first, because it directly determines the whole pipeline's ability to withstand traffic floods; the time-series database's compression ratio determines hardware cost and query performance; and the rule engine's placement at the edge or in the cloud is decided by its latency requirements. This three-component combination has a concrete implementation in the data center of the open-source platform IoT DC3 — collected values are uniformly wrapped as point-value objects, written to the time-series database, buffered through the message queue, and consumed by the rule engine — but the component selection itself is a generic engineering decision, independent of any specific platform (see Section 5.4 for the time-series trade-offs and Chapter 14 for the full implementation).

One point needs stating: the patterns a rule engine can cover are, in the end, preset. When device anomalies are irregular (edge oscillation in a variable-frequency drive's transient waveform, for example), or when cross-device patterns must be correlated across millions of points, traditional rule engines often fall short. These are exactly the problems that AI-driven anomaly detection and predictive analysis address. AI models can learn baseline patterns from historical time-series data, recognize subtle deviations that traditional threshold rules cannot capture, and produce remaining-useful-life predictions. The rule engine handles deterministic logic, AI handles non-deterministic patterns — the two complement rather than replace each other. The technical approach to AI data processing — model selection, the training and inference pipeline, the division of labor between edge and cloud — is left to Chapter 7; here we only mark the boundary.

Figure 5-2 Platform Core: Message Queue, Time-Series DB, Rule EngineThe message queue buffers traffic, the time-series DB stores efficiently, the rule engine judges smartly — their selections influence each other.Figure 5-2 Platform Core: Message Queue, Time-Series DB, Rule EngineThey solve buffering, efficient storage, and smart decisions; selections set throughput, cost, and timelinessMessage queue: data bufferPub/sub decouplingBackend survives device burstsOptions ComparedMQTT Broker: light device agent, persistent pushKafka: sequential writes + partitions, bulk pipelineRabbitMQ: flexible routing + acks, business integrationNot exclusive: MQTT in → Kafka/RabbitMQ outUsually chosen first; sets burst toleranceTime-series DB: built for timestampsData point = timestamp + tag + value fieldCustom engine + write compressionTwo Technical RoutesInfluxDB: TSM engine (LSM variant) + WALDelta encoding + delta-of-delta, TICK stackTimescaleDB: PostgreSQL-based, hypertables chunked by timeSQL-friendly; scans only touched chunksCompression sets HW cost & query speedRule engine: from thresholds to CEPSimple threshold: alarm > 80°CCEP: multi-event patterns in time windowsTwo Deployment FormsEdge: ms-level response (cut power)Cloud: wide-span analysis over historye.g. 3 current spikes + rising temp in 5 min → bearing faultRules handle deterministic logicAI handles non-deterministic patternsThe Three Selections InterlockQueue throughput → DB write pressure · rule real-time → queue latencyOrder: queue first (burst tolerance) → time-series compression sets hardware cost → rules go edge per latency needsIoT DC3: values wrapped as point-value objects → time-series DB → buffered by message queue → consumed by rule engineSelection is generic engineering, platform-agnostic; time-series trade-offs in 5.4, full build in Chapter 14Figure 5-2 The message queue buffers traffic, the time-series DB stores efficiently, and the rule engine judges smartly; the three selections interlock — queue throughput sets write pressure, rule-engine real-time depends on queue latency, and the message queue is usually selected first.
Figure 5-2 Platform Core: Message Queue, Time-Series DB, Rule Engine

5.1.3 Platform-Layer Security and Access Control

The platform layer's centralized services raise data throughput and processing efficiency — and at the same time gather the attack surface from scattered devices onto a few key nodes. An unauthenticated device can impersonate a legitimate sensor and inject false readings; an unencrypted transport link can be eavesdropped — or even tampered with — by a man-in-the-middle; an account with broken permission configuration may inadvertently perform dangerous actions via privilege escalation. These problems reduce to three engineering questions that must be answered: who you are (device identity), whether the data is safe on the road (transport encryption), and what you can do (access control).

Device Identity Authentication: The Engineering Trade-off Between Certificates and Tokens

The first step for a device connecting to a platform is proving its identity. Unlike a user login, a device has no interactive interface for entering a password; its keys must be stored securely in firmware or a secure chip. In industrial scenarios the common options are two paths, X.509 certificates and tokens, and the choice depends on the device's compute, storage, and security-level requirements.

The X.509 certificate approach: every device ships with a preloaded digital certificate issued by the platform's root CA. At connection time the device presents its certificate, and the platform verifies the signature chain and validity period, and can query the certificate revocation list or verify the certificate in real time through the Online Certificate Status Protocol. Devices with ample resources (an industrial gateway running full Linux, for example) can enable TLS mutual authentication — device and server verify each other's certificates, shutting out man-in-the-middle attacks. Even if a device is physically cracked, the attacker cannot impersonate other certificate-bearing devices, because the private key lives only in that device's secure storage (hardware secure elements such as TPM/SE). The certificate approach's high security strength carries a high computational cost — certificate-chain verification and CRL/OCSP queries demand extra compute and network round trips, which may be unbearable for MCU devices with only a few hundred KB of RAM.

The token approach: fits resource-constrained MCUs or scenarios that need to switch authentication context frequently. The device initiates an authentication request with its preloaded device key; once the platform verifies it, it issues a short-lived JSON Web Token (JWT). A token's computational overhead is far smaller than certificate-signature verification, and there is no certificate chain or revocation list to maintain. Tokens, however, must be paired with encrypted transport, and they need short validity periods and refresh mechanisms — once leaked, a token can be replayed until it expires. A common practice is to set the token's validity to a few hours, extend its lifetime with a refresh token, and add an extra verification dimension through device fingerprints (IMEI or MAC-address binding, for example).

In real projects the two can be mixed: the device establishes an mTLS connection with its certificate, and after the handshake the platform generates a temporary token through an internal channel for subsequent API calls. This exploits the certificate's high security strength while avoiding the cost of certificate verification on every RESTful request. For very large device fleets (hundreds of thousands of devices or more), the operational burden of certificate issuance and revocation management cannot be ignored, so some platforms prefer pre-provisioned symmetric keys on the device side combined with TLS-PSK (Pre-Shared Key), further reducing handshake overhead. Whichever approach is taken, the secure storage of device keys is the root of the entire trust chain — if a private key or preloaded key is extracted, every security premise built on that identity fails.

Transport Encryption: TLS and DTLS

The communication link between device and platform must be encrypted. If device readings and control commands at an industrial site are eavesdropped or tampered with in transit, the direct consequence may be a production incident.

TLS (Transport Layer Security) is the Internet's general-purpose encryption layer. Device and platform negotiate a symmetric session key through the TLS handshake, after which all data flows are transmitted encrypted. When device-side resources are limited, lightweight implementations such as mbedTLS or WolfSSL can be used, keeping memory usage within a small range (compared with OpenSSL's full-featured implementation). TLS 1.3 further optimizes handshake efficiency, cutting round trips from TLS 1.2's two to one, and removes all legacy cipher suites outright — RC4 had already been prohibited by RFC 7465 (2015), and legacy algorithms such as DES no longer exist in TLS 1.3; the protocol retains only AEAD encryption and a new generation of key exchanges. In the typical MQTT-over-TLS scenario, TLS 1.3 completes the handshake in a single round trip, sharply reducing the latency of a device's first connection.

DTLS (Datagram Transport Layer Security) is designed for UDP transport and fits application-layer protocols such as CoAP. DTLS emulates TLS's handshake and encryption on top of UDP, overcoming UDP's unreliability through retransmission and sequence-number mechanisms. The typical scenario is low-power sensors reporting data over CoAP over DTLS, with the platform receiving it in a connectionless manner. Note that a DTLS handshake costs one more round trip than TLS and is constrained by UDP packet size (IP fragmentation is usually required), so on wireless networks with high packet loss the handshake times out easily. In engineering, session caching and the connection ID (Connection ID) can reduce repeated handshakes.

One engineering boundary that is often overlooked: TLS/DTLS guarantees security in transit, not security at rest. Once the data reaches the platform side, the decrypted plaintext needs an internal encrypted-storage policy to protect it. Transport encryption and storage encryption are two independent security domains; the design must define each separately within the data-processing pipeline and make each one's key-management responsibility explicit.

Access Control: RBAC and ABAC Working Together

After authentication, the platform must answer "what may a device do" and "which data can different users and organizations access." Two access-control models are common, and the trade-off lies between management complexity and flexibility.

Role-Based Access Control (RBAC): binds permissions to roles; users or devices are assigned one or more roles. Roles have clear structure and are simple to manage, which suits scenarios without many kinds of permissions. Typical roles include "device read-only" (can only report data), "field operations" (can read and write the devices of its own production line), and "system administrator" (can configure rules and users). The cost of RBAC is that role counts balloon as scenarios grow, ending in "role explosion." On a multi-tenant platform, for example, if every tenant needs its own administrator, operations, and audit roles, the number of roles multiplies.

Attribute-Based Access Control (ABAC): decides dynamically from the multi-dimensional attributes of user, device, resource, and environment. A policy might read, for example, "allow the 'firmware upgrade' operation only if the device's plant area is 'Zone A' and the current time is a weekday." ABAC can flexibly support complex scenarios such as tenant isolation, time-window control, and device-type constraints, but its policy definition and maintenance costs are markedly higher — the policy engine must evaluate attributes in real time, which directly affects the platform layer's response latency.

Large platforms usually adopt both: RBAC manages routine user permissions, and ABAC handles boundary conditions and risky operations. When a user under a "field operations" role executes a high-risk command outside working hours, for example, the system layers on an ABAC policy requiring a second confirmation (through an SMS verification code or supervisor approval). This hybrid model keeps daily operations simple while providing dynamic constraints for sensitive behavior.

Changes to security-related policy are not one-off deployment work. Certificate renewal, TLS cipher-suite upgrades, ABAC policy changes — a mistake in any one link can take the entire device fleet offline or leak data. Canary release and rollback mechanisms are a system boundary that platform-layer security engineering must maintain continuously. Every adjustment to security policy should have a clearly defined canary-release window and rollback plan between the test and production environments. Chapter 8 develops this point further.

Figure 5-3 Device Authentication & Data Encryption FlowCertificate authentication happens inside the TLS/mTLS handshake; tokens are issued only after in-channel authentication, and the hybrid path runs mTLS → Token → API.Figure 5-3 Device Authentication & Data Encryption FlowCredentials must be used within the right security boundary; storage protection is still needed after transport decryption.Certificate PathDevice identity verified inside the handshakeDevice Certificate & Private KeyX.509 CertificateTLS / mTLS HandshakeVerify chain & identity in handshakeEncrypted Session / Protected APISession keys protect trafficHandshake CompleteToken PathEncrypt first, authenticate in channel, issue short-lived tokenDevice Credentialse.g. pre-shared keysTLS Encrypted ChannelProtect auth requests firstIn-Channel AuthVerify credentialsShort Token + refreshShort TTL limits leak impactHybrid Path (Main Link)mTLS → Short Token → Business APImTLS Device AuthDone in handshakeShort-Lived TokenIssued in channelBusiness APIProtected callsKey TakeawaysCertificate authentication is part of the TLS/mTLS handshake, not a separate request before or after it.Token authentication requests must first be protected by a TLS encrypted channel and are issued only after in-channel authentication.Short TTL plus refresh limits token leak impact; access control and storage protection are still needed after transport decryption.Solid arrows: requests / data flowDashed arrows: handshake done / returnMain link: mTLS → short-lived token → business APIFigure 5-3 Device authentication and data encryption flow: certificates are authenticated within the TLS/mTLS handshake, tokens are issued after in-channel authentication over an encrypted channel, and the hybrid mode uses mTLS, short-lived tokens, and business APIs in turn.
Figure 5-3 Device Authentication & Data Encryption Flow

From Industrial Software to AI Agents · Building a multi-protocol, cloud-native, open-source industrial IoT platform ready to evolve toward AI agents