Async Task Queues
99designs.com
99designs.com
However, my better angels re-read it and say "Well, at some point you didn't know all that, and this is actually a well-written intro to the topic".
So ... good article!
The potential is far greater than simple tasks like sending an email, fetching external data, etc. If the server has the ability to push updates, you can start to use task queues in core user interactions. This is possible when workers can notify clients when their task is complete.
For example, you can have clients submit HTTP requests to the web server, the web server dispatch jobs to the task queue, worker processes (potentially in a different language than your web server!) retrieve those jobs, and then the workers directly notify clients when the job is complete. Combined with client-side logic, the result can be a good user experience, even when the server is performing complex tasks.
For example, I'm using this strategy to write web-based statistics software (think web-based Stata or SPSS). Without this type of asynchronous architecture, it simply wouldn't be possible to provide a good user experience because the core things the user wants to do are computationally intensive.
Google's App Engine task queues are also very easy to use as the workers are just normal URL handlers in your app and the payload is standard HTTP data. See Python documentation at http://code.google.com/appengine/docs/python/taskqueue/ and Go documentation at http://code.google.com/appengine/docs/go/taskqueue/.
The article lists: Image resizing Sending emails Third Party API calls
What about? Database optimisation Static file compression
Our rule of thumb is basically anything that's going to take more than ~100ms we definitely don't want our users waiting for it in their page load time.