What are RabbitMQ streams?

Answer

RabbitMQ Streams (introduced in RabbitMQ 3.9) is a new queue type that stores messages as a persistent, append-only log — bringing Kafka-like semantics to RabbitMQ. Unlike classic/quorum queues (messages deleted after consumption), stream messages are retained until a size/time limit. Key features: Replay: consumers can read from any offset, enabling replay of historical messages. Multiple consumers: multiple consumers can independently read the same stream from different offsets without interfering. High throughput: optimized for high-volume logging and event streaming. Long retention: retain messages for hours, days, or until size threshold. Offset tracking: consumers save their offset to resume after disconnection. Create: {"x-queue-type": "stream", "x-max-length-bytes": 5_000_000_000, "x-stream-max-segment-size-bytes": 500_000_000}. Stream protocol: use the native RabbitMQ Stream protocol via stream-specific clients (better performance) or AMQP 0-9-1 for basic usage. Streams make RabbitMQ competitive with Kafka for event streaming use cases while maintaining RabbitMQ's simpler operational model.