What problem does it solve?
Standard Django signals are synchronous and unreliable: receiver failures propagate errors to the sender, there is no delivery guarantee if the process crashes after a database commit, and there is no built-in retry mechanism for failed side-effect tasks like notifications or cache invalidation.
Core Features & Use Cases
- Implements the reliable signals pattern using Celery to enqueue receiver tasks inside the same database transaction as the business operation, so tasks roll back automatically if the transaction fails and are guaranteed to be queued on successful commit.
- Enforces idempotent receiver design to safely handle at-least-once delivery from Celery, preventing duplicate side-effects from repeated task execution.
- Use cases include triggering post-commit work such as user notifications, cache invalidation, analytics logging, or cross-service coordination tied to Django business operations.
Quick Start
Use the dj-signals skill to add a reliable async signal for new user registration emails in your Django project, ensuring the email task is only queued after the user account is successfully saved to the database.