An asynchronous process is a process or function that executes a task "in the background" without the user having to wait for the task to finish. Typically, you will use Asynchronous programming for callouts to external systems, operations that require higher limits, and code that needs to run at a certain time.
There are many different types of asynchronous requests on Force.com. Some are user initiated and some are internal housekeeping functions. Asynchronous requests users will be familiar with include:
- Asynchronous Apex (@future Apex, batch Apex, queueable Apex, scheduled Apex)
- Bulk API jobs
- Scheduled Reports
- Dashboard refreshes