Oi Weverton, tudo bem?
Entendo que você está enfrentando dificuldades ao lidar com requisições paralelas em sua API no SpringBoot. É importante garantir que a validação no banco de dados funcione corretamente, mesmo quando há múltiplas requisições simultâneas.
Uma possível solução para esse problema é utilizar mecanismos de controle de concorrência, como transações isoladas ou bloqueios no banco de dados. Dessa forma, você evita que duas requisições paralelas acessem e modifiquem os mesmos dados ao mesmo tempo.
O Spring Framework oferece suporte a transações por meio da anotação @Transactional
. Você pode utilizar essa anotação em seu serviço para garantir que as operações no banco de dados sejam executadas de forma isolada. Além disso, é importante verificar se o seu banco de dados suporta transações e configurá-lo corretamente.
Caso você precise de uma solução mais avançada, como o uso de filas, uma biblioteca recomendada é o RabbitMQ. O RabbitMQ é um sistema de mensageria que permite a comunicação assíncrona entre diferentes partes de um sistema distribuído. Ele pode ser utilizado para gerenciar a ordem de execução das requisições e garantir que as validações sejam realizadas corretamente, mesmo em cenários de alta concorrência.
No entanto, antes de adotar uma solução mais complexa como o uso de filas, sugiro que você verifique se as transações isoladas do Spring são suficientes para resolver o problema. Avalie também se o desempenho da sua aplicação não será prejudicado com o uso de filas.
Um abraço e bons estudos.