Before reactive programming, asynchronous web features were already part of the previous Spring core used in huge multiple transactions and batch processing. Up to this day, the interface TaskExecutor is needed to generate threads for the MVC platform. It has several implementation types, but the ones widely used are the SimpleAsyncTaskExecutor, ThreadPoolTaskExecutor, and ConcurrentTaskExecutor.