All checks were successful
Build & Publish to GHCR / build (push) Successful in 56s
Reviewed-on: #2
Backend Push Notifications
Overview
This part of the backend handles device push notifications for registered users. It consumes messages from RabbitMQ, looks up user device tokens from a MySQL database, and sends notifications via Expo's API. Failed deliveries are retried or sent to a dead-letter queue.
Requirements
- Python 3.12+
- MySQL database
- RabbitMQ
- Python packages from requirements.txt
Configuration
Environment variables:
-
LOG_LEVEL(DEBUG, INFO, WARNING, ERROR, CRITICAL) -
RABBITMQ_URL -
MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE -
API_ENDPOINT(Expo push API)
Metrics
Metrics are exposed on port 9000 for Prometheus, including:
-
MSG_PUBLISHED -
MSG_FAILED -
MSG_RETRY -
Queue sizes
Description
Languages
Python
98.2%
Dockerfile
1.8%