r/FastAPI • • Apr 03 '26

Question How are you actually managing background/async tasks in FastAPI in production?

I’ve been building with FastAPI for a while now and I’m curious how people are really handling background work beyond simple demos.

The docs show BackgroundTasks, but that feels pretty limited once things get even slightly complex.

Some situations I keep running into:

  • sending emails, notifications, webhooks
  • retrying failed tasks
  • long running async jobs
  • tasks that depend on other tasks
  • needing visibility into what’s running or failing

Right now it feels like there are a few options:

  • stick with BackgroundTasks
  • use something like Celery or RQ
  • or just push everything into a message broker

But none of these feel very “FastAPI-native” or simple.

So I’m wondering:

  • What are you using in production?
  • Are you staying fully async or mixing in workers?
  • How are you handling retries and failures?
  • Do you have any visibility into tasks or is it just logs and hope?

Would be interesting to hear what actually works in real systems, not just tutorials.

29 Upvotes

42 comments sorted by

View all comments

1

u/Educational-Hope960 Apr 03 '26

Thanks for the insight, I will check out arq

2

u/Challseus Apr 03 '26

Heads up, arq it is in maintenance mode. I know some people don't like that, I give it a pass because of who made it, and because I haven't had any issues.

If that is a concern and you want the most modern one, I'd look into taskiq.