Sometimes a part of our application just can not run that fast, it could be for example, avatar processing, email sending, and in these case we don't usually need a response/confirmation that the action is finished, we can push these tasks into queue and handle them asynchronously to take the load off the system.
- push slow tasks into queue
- consume queue with worker
- many workers can run at the same time, so tasks are finished faster