Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eventsender

This is a simple event sender that publishes JSON-serialisable messages to an AMQP server exchange. It can also be optionally installed as a Django application.

Installation and configuration

The following settings should be supplied either as environment variables or via Django settings module:

EVENT_QUEUE_URL = os.environ.get('EVENT_QUEUE_URL')
EVENT_QUEUE_EXCHANGE = os.environ.get('EVENT_QUEUE_EXCHANGE')
EVENT_QUEUE_ROUTING_KEY = os.environ.get('EVENT_QUEUE_ROUTING_KEY', '')

EVENT_QUEUE_ROUTING_KEY is optional and can be omitted (it will be assumed blank by default).

Usage

Example:

from eventsender import send_event
send_event({'type': 'user.subscribed', 'username': 'john_doe'})

Or

EVENT_QUEUE_EXCHANGE=some_exchange EVENT_QUEUE_URL=amqp://guest:guest@localhost:5672/host python -c \
     "import eventsender; eventsender.send_event({'type': 'event_type', 'somedata': {'key': 'value'}})"

Tracing

send_event creates an OpenTelemetry producer span for every publish and injects the current trace context into the AMQP message headers, so consumers can continue the trace. This only depends on opentelemetry-api, for applications without a configured OpenTelemetry backend all tracing calls are no-ops and the behaviour is unchanged. To get the spans into your tracing backend, configure an OpenTelemetry SDK in your application (for example by enabling the Sentry SDK's OpenTelemetry support).

Running tests

Install uv and run uv run pytest tests.

About

This software is brought to you by Byte, a webhosting provider based in Amsterdam, The Netherlands. We specialize in fast and secure Magento hosting and scalable cluster hosting.

Check out our Github page for more open source software or our site to learn about our products and technologies. Looks interesting? Reach out about joining the team. Or just drop by for a cup of excellent coffee if you're in town!

About

Generic Python library to send events to AMQP

Resources

Security policy

Stars

1 star

Watchers

18 watching

Forks

Releases

Packages

Used by

Contributors

Languages