Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Python
  3. dramatiq

dramatiq

LGPL-3.0Pythonv2.2.0

A fast and reliable distributed background task processing library for Python 3.

Visit WebsiteGitHubGitHub
5.3k stars375 forks0 contributors

What is dramatiq?

Dramatiq is a distributed background task processing library for Python 3 that allows developers to offload time-consuming operations from their main application. It provides a fast and reliable way to handle asynchronous jobs using an actor-based model, improving application scalability and responsiveness.

Target Audience

Python developers building web applications, APIs, or services that require reliable background job processing, such as sending emails, processing uploads, or performing data analysis.

Value Proposition

Developers choose Dramatiq for its simplicity, performance, and reliability in distributed environments, with built-in support for popular brokers like RabbitMQ and Redis and an easy-to-use API.

Overview

A fast and reliable background task processing library for Python 3.

Use Cases

Best For

  • Offloading email sending or notification tasks from web applications
  • Processing file uploads or data transformations asynchronously
  • Handling periodic cron-like jobs in Python services
  • Building scalable microservices with background job queues
  • Distributing CPU-intensive tasks across multiple workers
  • Implementing reliable retry mechanisms for failed operations

Not Ideal For

  • Projects requiring built-in cron-like scheduling without external tooling
  • Applications where task execution must have real-time, sub-second latency
  • Teams seeking a fully managed, serverless task queue with zero infrastructure setup
  • Simple scripts or one-off tasks where running a message broker is overkill

Pros & Cons

Pros

Simple API

Uses a straightforward decorator-based syntax (@dramatiq.actor) for defining tasks, as shown in the quickstart example, making it easy to integrate into existing Python code.

Broker Flexibility

Supports both RabbitMQ and Redis for message queuing, allowing developers to choose based on their infrastructure preferences, with clear installation instructions in the README.

Performance Focus

Designed for speed and reliability in distributed environments, emphasizing fast task processing as highlighted in the GitHub description and project tagline.

Actor-Based Model

Tasks are defined as actors, which simplifies distribution and management of background jobs, aiding in scalability for microservices or web applications.

Cons

External Broker Dependency

Requires setting up and maintaining RabbitMQ or Redis separately, adding infrastructure complexity compared to libraries with built-in or in-memory queues.

Limited Built-in Scheduling

Lacks native cron-like scheduling features, forcing reliance on external tools or workarounds for periodic tasks, which the documentation implicitly acknowledges by focusing on immediate task execution.

LGPL License Restriction

The LGPL license may be a concern for some commercial projects that prefer more permissive licenses like MIT, potentially limiting adoption in proprietary environments.

Frequently Asked Questions

Quick Stats

Stars5,293
Forks375
Contributors0
Open Issues43
Last commit1 day ago
CreatedSince 2017

Tags

#async-processing#task-queue#task-scheduler#redis#message-queue#distributed-systems#python#rabbitmq#rabbit#task#distributed-lock#task-manager#task-runner#job-queue#background-tasks

Built With

P
Python 3
R
RabbitMQ
R
Redis

Links & Resources

Website

Included in

Python290.8k
Auto-fetched 17 hours ago

Related Projects

CeleryCelery

Distributed Task Queue (development branch)

Stars28,719
Forks5,113
Last commit1 day ago
rqrq

Simple job queues for Python

Stars10,668
Forks1,481
Last commit2 days ago
hueyhuey

a little task queue for python

Stars5,996
Forks398
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub