Я думаю, что вы можете использовать producer-consumer design pattern
Например.
1. Получить запрос от клиента, выполнить шаг 1.
2. Ответ клиента.
3. Сделайте task entity
, затем добавьте его к task queue
.
4. Конец рабочего потока Http.
5. Выполните шаг 2-N в другом потоке. И поместите результаты в кеш.
Для фреймворков, akka - хороший выбор. RxJava
тоже может быть хорошо.
И вы можете реализовать это самостоятельно.