1.Task queue tools landscape
Celery, RQ, and Dramatiq are Python task queue libraries that hand work to background workers. Redis and RabbitMQ are the message brokers they run on top of; Kafka is a log-based streaming platform sometimes used the same way.
Key features
- Celery is the most feature-complete Python task queue: retries, scheduling, chains, and multiple broker backends
- RQ (Redis Queue) is deliberately simpler than Celery — Redis-only, minimal configuration, easier to read the source of
- Dramatiq positions itself as a simpler, safer-by-default Celery alternative, with automatic retries built in
- Redis and RabbitMQ are message brokers — they store and deliver the messages a task queue library sends between processes
- Kafka is a distributed log, not a traditional queue — messages persist and can be replayed, not just consumed once
Six technologies from the roadmap, and the layer each occupies
Command
from celery import Celery
app = Celery("tasks", broker="redis://localhost:6379/0")
@app.task
def my_task(x, y):
return x + yCelery/RQ/Dramatiq are task queue libraries; Redis/RabbitMQ/Kafka are the brokers underneath them — pick the library first, then a broker it supports.