Message Queue vs Task Queue vs Message Broker: why are these always mixed up?

Posted by Civil_Station_1164@reddit | programming | View on Reddit | 13 comments

Title: Message Queue vs Task Queue vs Message Broker: why are these always mixed up?

While working with Celery, Redis, and RabbitMQ, I kept seeing people use message queue, task queue, and message broker interchangeably.

After looking into the documentation and real implementations, here’s how I understand it:

Message Queue: just moves messages (one consumer per message).

Message Broker: manages queues, routes, retries, and protocols.

Task Queue: executes actual jobs using workers.

They’re not alternatives; they work together in production systems.

One interesting thing I noticed is that a lot of confusion comes from tools like Redis, which can act as both a simple queue and a broker-like system, and Celery, which abstracts everything.

I’m curious how others think about this. Do you keep these concepts separate in your architecture or treat them more loosely?

I also wrote a deeper breakdown with examples (Celery, RabbitMQ, SQS) if anyone’s interested.