Message Brokers
Message broker actions in Django Action Triggers allow you to send messages to a message broker when a trigger is activated. This is useful for integrating with distributed systems, event-driven architectures, and asynchronous processing.
Navigate to the Broker Configuration Guides section to learn how to configure specific message brokers in your Django settings.
Support for other message brokers are planned for future releases. If you would like to see support for a specific message broker, please open an issue on the GitHub repository.
Configuration
Before you can send messages to a message broker, you must configure the broker in your Django settings. This involves specifying the broker type, connection details and any necessary parameters for the broker.
For more information, refer to the Action Trigger Settings guide.
Configuring Message Brokers
Message brokers are configured in the ACTION_TRIGGERS.brokers dictionary in your settings.py file. Each broker configuration includes the broker type, connection details, and any additional parameters required.
Example Configuration in `settings.py`
Here is the structure of a basic message broker configuration:
ACTION_TRIGGERS = {
"brokers": {
"<broker_config_name>": {
"broker_type": "<broker_type>", # e.g., "rabbitmq" or "kafka"
"conn_details": {
"<key>": "<value>" # Key-value pairs of connection details (e.g., host, port)
},
"params": {
"<key>": "<value>" # Key-value pairs of broker-specific parameters (e.g., queue, topic)
}
}
}
}
Configuration Options
Field |
Type |
Description |
|---|---|---|
broker_config_name |
string |
A unique name for the broker configuration. |
broker_type |
string |
The type of the broker (e.g: rabbitmq, kafka, etc.) |
conn_details |
dict |
Connection details required to establish a connection with the broker, such as host, port, username, and password. |
params |
dict |
Additional parameters specific to the broker, such as the name of the queue for RabbitMQ or the topic for Kafka. |
Example Configuration
Below is an example configuration for setting up a RabbitMQ broker:
ACTION_BROKERS = {
"my_rabbit_mq_broker": {
"broker_type": "rabbitmq",
"conn_details": {
"host": "localhost",
"port": 5672,
"username": "guest",
"password": "guest",
"virtual_host": "/"
},
"params": {
"queue": "my_queue" # The name of the queue to which messages will be sent
}
}
}
Best Practices for Configuration
Security: Avoid hardcoding sensitive information, such as passwords in your settings.py file. Use environment variables or a secure vault to manage these credentials.
Testing: Before deploying to production, thoroughly test your broker configuration in a development environment to ensure that messages are being sent and received correctly.
Set Timeout Limits: Define a maximum timeout for message broker actions to prevent long-running requests from blocking your application. This can be done by setting ACTION_TRIGGER_SETTINGS.MAX_BROKER_TIMEOUT in your settings.
Broker Configuration Guides
The following guides will help you configure specific message brokers within your Django project using Django Action Triggers: