Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Project - Django Action Triggers (django-action-triggers) #281

Open
2 of 5 tasks
Salaah01 opened this issue Sep 9, 2024 · 1 comment
Open
2 of 5 tasks

New Project - Django Action Triggers (django-action-triggers) #281

Salaah01 opened this issue Sep 9, 2024 · 1 comment

Comments

@Salaah01
Copy link

Salaah01 commented Sep 9, 2024

Project Information

  1. Project Name: Django Action Triggers
  2. Project URL: https://github.com/Salaah01/django-action-triggers
  3. Description: A Django library that asynchronously triggers actions based on database changes. Supports webhook integration, message brokers (Kafka, RabbitMQ), and flexible configurations.

Criteria

Please answer the following questions about the project you are submitting. This will help us evaluate if the project should be included in the Awesome Django list.

  1. Is the project new?

    • Yes
    • No
  2. How long has the project been maintained?
    1 month

  3. How many releases has it had if it's a library or package?
    5 - https://github.com/Salaah01/django-action-triggers/releases

  4. Are you the author or are you submitting the project on behalf of a company?

    • I am the author
    • I am submitting on behalf of a company
    • Other (please specify)
  5. What makes it awesome?
    Django Signals are awesome. They allow you to introduce the observer pattern and trigger events based on some kind of trigger. Typically, in Django, you define your specific signals in a signals.py file, which is essentially hard-coding “if this happens, do that” logic. If you want to change or add new signals, you have to write more code, update the signals, and redeploy the app.

Django Action Triggers builds on that concept, but with more flexibility. Instead of hard-coding signals, this library allows you to manage signals dynamically via the UI or API. You can set up, modify, or remove triggers without touching the codebase or redeploying. This makes it easier for teams to iterate and adjust workflows on the fly.

Additionally, it includes built-in integrations with services like AWS SNS, Kafka, RabbitMQ, and Redis—so you don’t need to reinvent the wheel every time you want to connect to an external service or message broker.

Additional Information

  • 100% test coverage
  • Highly compatible with different versions of Python and Django. This is my test matrix:
strategy:
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
        django-version: [32, 42, 51]
        db: [postgres, mysql, sqlite]
        broker: [rabbitmq, kafka, redis, aws_sqs, aws_sns]
        exclude:
          # Django 5.1 does not support Python <3.10
          - python-version: "3.8"
            django-version: 51
          - python-version: "3.9"
            django-version: 51
  • Detailed README
  • Extensive documentation: https://salaah01.github.io/django-action-triggers/
  • Nothing out there seems to offer the ability to manage signals at runtime.
  • Can easily integrate with the following services:
    • Kafka
    • RabbitMQ
    • Redis
    • AWS SQS (Amazon Simple Queue Service)
    • AWS SNS (Amazon Simple Notification Service)
  • Continuously adding more integration - In the pipeline, I am planning to add the following:
    • AWS Lambda integration
    • Google Clouds Function Integration
    • Google PubSub Integration
@jefftriplett
Copy link
Collaborator

This is pretty cool, but I haven't quite wrapped my head around it. Are there any blog posts or videos that step through it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants