Serviços Web RESTful da Primavera - Processamento de dados de alto volume

Estou tentando criar um serviço da Web Spring / Spring Boot- RESTful,

O qual aceita um arquivo CSV com 1 milhão de linhas / 40 colunas em cada linha como entrada (de um front end baseado em Angular) e será uma chamada síncrona. O usuário deve ser notificado sobre o status do upload antes de prosseguir para outras telas. Portanto, o tempo de espera não pode ser superior a alguns minutos (digamos 5 minutos).

Cada uma dessas linhas deve ser validada com relação ao que está no DB e, se for considerada válida, o mesmo será inserido no DB. Em resumo, cada linha pode ser uma transação independente separada.

Você pode sugerir qual seria a melhor abordagem para implementar isso?

O sistema legado atual implementa a mesma funcionalidade nos procedimentos armazenados, o que tornou a solução intimamente acoplada ao banco de dados, o que será um problema se o RDBMS precisar ser alterado na linha.

Alguma abordagem sobre o processamento desses 1 milhão de dados em blocos (digamos 20k) em chamadas de serviço da Web assíncronas?

Lote de primavera?

O procedimento armazenado pode ser mais adequado e com melhor desempenho do que as duas opções acima, por acaso (supondo que não!)?

Você pode ajudar com alguma abordagem que seja pelo menos tão boa quanto o procedimento armazenado e como dimensionar horizontalmente com base na solução sugerida.

questionAnswers(1)

yourAnswerToTheQuestion