FastAPI RabbitMQ Celery Flower Starter
Queue SMS and email sends from a FastAPI API with Celery workers and monitoring
This project is a multi-service sample: a FastAPI service triggers work, RabbitMQ carries messages, Celery workers process SMS (via Twilio) and transactional email (via Brevo / Sendinblue), PostgreSQL stores message status, and Flower gives visibility into workers. Docker Compose ties the pieces together with health checks, as described in the README.
When it is useful
You are learning or prototyping async notifications, you need a reference for separate SMS and email queues, or you want a lab to test provider credentials safely before production hardening. Treat costs, deliverability, and compliance as your operational problem.
What you can do
- Call the documented REST surface to enqueue SMS and email jobs.
- Operate RabbitMQ, workers, DB, and Flower from the compose setup in the repository.
- Swap or extend webserver and worker code paths following the project layout (Poetry is noted for dependency management).
Limits
- Delivery rates, spam policy, and telecom rules follow Twilio, Brevo, and your jurisdiction; this repo does not certify compliance.
- Default dashboard credentials in the README are for local experimentation only; rotate everything before any shared environment.
- Throughput and reliability in production require your tuning, retries, idempotency, and observability, not just this starter.



