Some checks failed
Build & Publish to GHCR / build (push) Has been cancelled
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%