AWS IOT

MQTT vs AMQP vs HTTPS for IoT: Choosing the Right Protocol

Nov 2025 5 min read Ravi Kumar
Firmware engineer's comparison — payload size, connection overhead, QoS, and AWS IoT Core compatibility for embedded devices.

The Protocol Decision

Choosing the wrong IoT messaging protocol wastes bandwidth on cellular, drains batteries, and creates architectural debt. Here is a firmware engineer's perspective focused on the device side.

MQTT

Best for most IoT use cases. 2-byte fixed header, persistent sessions surviving network dropouts, QoS 0/1/2, native AWS IoT Core support, and keepalives as low as 10 seconds. Use clean_session=false to survive reconnects.

HTTPS

Best for batch uploads, OTA downloads, and low-frequency telemetry. Request-response only — no server push. TLS handshake adds ~3-5KB overhead per connection on cellular. Works through all firewalls.

AMQP

Best for enterprise integration and Azure IoT Hub. Rich routing and dead-letter queues, but large client libraries (~80KB+) make it unsuitable for MCUs. AWS IoT Core does not natively support AMQP.

Decision

Use MQTT over TLS with QoS 1 for real-time telemetry and commands. Use HTTPS for OTA downloads and infrequent bulk uploads. Avoid AMQP on resource-constrained devices unless you have a specific broker requirement.

← Back to all posts