az_
az_

Reputation: 1503

node-celery vs node-amqp for RabbitMQ

I've been recently reading into task queues and message queues, and I am a bit confused as to how everything fits together.

I see that both node-celery and node-amqp provide ways to add to the RabbitMQ queue. However, node-celery is described as a "task queue" while node-amqp is described as a "client for RabbitMQ". What is the difference? Or does node-amqp provide functionality similar to Celery already?

Also, doesn't RabbitMQ already have a queue? Why do I need Celery on top of RabbitMQ?

Upvotes: 1

Views: 868

Answers (1)

Lycha
Lycha

Reputation: 10177

There are two concepts here:

  • RabbitMQ is message bus implementation that supports AMQP. So it is generic messaging system you can use for what ever you like (not just tasks).
  • Celery is task management library/framework that uses AMQP (or database if you configure it to) to communicate between your code and worker processes. It handles task related responsibilities like fetching task-results, managing worker processes, etc.

Upvotes: 3

Related Questions