Celery + Redis for async workloads
Context: PDF generation and notifications are too slow to run inside the request/response cycle.
Decision: Offload heavy work to Celery workers with Redis as the broker, keeping request latency low while supporting retries and scheduled tasks.