The only advice for your scenario would be to use a thread pool, rather than creating a new thread for each request. In Java, it is very simple, just create a pool once during application launch (see the Executors class) and send new tasks to it every time you need to perform some asynchronous operation. For your scenario, these tasks will perform resource-intensive operations and a second REST call from another thread, after the original request was sent from 200.
Tomasz Nurkiewicz
source share