This is for submitting jobs for long running tasks where we don’t need to give the user a response back right away.

When a request comes in, instead of processing it right away, we just need to ack the request and send back a job_id or something to be able to track that job 202.

We drop the request into a Message Queue for workers to pick up when their ready and write the result to our Database.

The client will know when the job is done by either using the job_id and an endpoint that we serve that checks the DB for the result. Or, we could emit an event when the job is finished (Webhook / email, etc).

In the diagram below from the book designing data intensive applications, this is the right most component of the architecture diagram.