AMQP (Advanced Message Queuing Protocol)
AMQP (Advanced Message Queuing Protocol) is a standardized protocol for reliable messaging between applications. It is used when systems need to exchange data and events asynchronously, in a decoupled manner, and with delivery guarantees – rather than through direct API calls that require both sides to be available simultaneously.
How Does AMQP Work?
AMQP operates through a message broker that acts as an intermediary between sender and receiver. The producer creates messages and sends them to the broker. The broker accepts them, buffers them in queues, and distributes them to consumers that process the messages.
Critical for practical use: AMQP supports acknowledgements (Ack/Nack). A message is only considered processed once the consumer confirms it. If no acknowledgement arrives – due to a restart or network issue – the broker redelivers the message. This makes AMQP robust in unstable environments.
Delivery Guarantees: What Really Matters
AMQP systems are typically operated in at-least-once mode: a message may arrive more than once but will not be lost. The consumer must therefore be built to be idempotent – duplicate processing must not cause harm.
At-most-once (no duplicates, but possible loss) is rarely desired. Exactly-once is not a broker feature in distributed systems – it is an architecture topic requiring idempotency plus transaction logic at the application level.
AMQP 1.0 vs. AMQP 0-9-1
Two worlds exist in practice. AMQP 1.0 is the modern, vendor-neutral standard with clear interoperability across implementations. AMQP 0-9-1 is the widely used protocol of the RabbitMQ ecosystem – colloquially often called "AMQP," but not compatible with AMQP 1.0. Anyone requiring interoperability between different implementations should explicitly ask for AMQP 1.0.
Typical Use Cases in Industry and OT/IT
AMQP is well suited for event-driven integration between MES, ERP, and quality systems – for status events like "order started," "batch quarantined," or "inspection passed." It is also used to decouple OT data pipelines: an edge gateway publishes data, and multiple services such as historian, reporting, and alerting consume it independently. And it buffers load spikes, as the queue holds messages while consumers scale at their own pace.
AMQP vs. MQTT vs. Kafka
AMQP is strong for reliable enterprise messaging with queues, acknowledgements, and flexible routing through a broker. MQTT is more lightweight, primarily designed for telemetry and IoT scenarios with less extensive messaging semantics. Kafka is a log and stream platform for high throughput and event streaming, with a different consumption model based on topics and offsets – not a direct replacement for AMQP, but a different architectural choice.
FAQ
When should AMQP be used instead of a REST API? REST is suited for controlled queries with clear request/response semantics. AMQP makes sense when systems need to remain decoupled, delivery guarantees are required, or receivers cannot be permanently available.
Is RabbitMQ the same as AMQP? No. RabbitMQ is a message broker that primarily implements AMQP 0-9-1. AMQP is the protocol. RabbitMQ now also supports AMQP 1.0, but its core is based on 0-9-1.
What is a dead-letter exchange? A dead-letter exchange is a mechanism that catches messages that could not be processed – for example, due to repeated failures or expired TTL. It prevents infinite retry loops and makes errors visible rather than silently discarding them.
How is AMQP secured in OT environments? The minimum standard includes TLS encryption, authentication at the broker, and granular permissions for publish and subscribe. In production environments, network segmentation and broker hardening are added – the broker must not become an open conduit between OT and IT.

