Há um tempo atrás tive um problema de concorrência em uma aplicação de pagamento.
Acontece que todo o processamento era online, mas se houvesse mais de um pagamento para o mesmo cliente o saldo não era atualizado corretamente.
Para resolver esse problema, decidi usar filas. Mas até hoje penso qual seria a outra solução viavel para esse problema.
Na altura fiz um teste usando Syncronized o que não deu certo, nos teste de carga ainda assim o saldo era atualizado incorretamente muito raramente mas acontecia.
Gostaria de saber da experiencia de vocês e como resolvem problemas de concorrencia em aplicação web.