systemdesign/concepts distributedsystem/microservice/messagequeue

RabbitMQ
Publisher-Subscriber Architecture

Message Queues

Brokers help two service / Applications communicate through messages.
We use Message Broker when we want to do something asynchronously.

Features

Message Streams

Apache Kafka

Message streams are similar to message queues with few differences to understand.

Message streams are similar to message brokers with one change: Multiple types of consumers read the same message

Message Queues vs Message Streams

FeatureMessage Queue (Broker-style)Message Stream (Kafka-style)
Delivery ModelPoint-to-point (1 consumer per msg)Publish-subscribe (many consumers can read same message)
Message ConsumptionMessage is removed after consumptionMessage is retained and replayable
RetentionUntil consumedConfigurable (time-based or size-based)
OrderingUsually FIFO per queueStrict order within each partition
Replay Support❌ No✅ Yes (by offset)
Use CaseTask queue, background jobsEvent sourcing, log aggregation, analytics
ExamplesRabbitMQ, SQSKafka, Pulsar, Redpanda