Background jobs move slow work like emails, image processing and report generation out of the request cycle so users never wait on it. You need them the moment any user action takes more than a second. I typically build this with Celery or queue workers depending on stack.
Have a question specific to your product?
Share the context and I will reply with a practical next step.