[DÚVIDA] Buscando Soluções Escaláveis para Gerenciamento de Saldo em Ambiente de Microserviços
Oi,
Estou enfrentando um desafio em um ambiente de microserviços e gostaria de obter suas opiniões e sugestões. Estou trabalhando onde nossa arquitetura, temos um serviço centralizado de saldo que é intensamente consultado e atualizado por outros dez microserviços para operações como verificar o saldo de um usuário/tenant, adicionar e remover saldo. Atualmente, utilizamos requisições HTTP para a maioria dessas interações(buscar saldo atual e retirar saldo) e RabbitMQ para processar incrementos de saldo em segundo plano.
Apesar desta configuração, ainda enfrentamos uma alta carga de requisições HTTP, o que está impactando a escalabilidade e a performance do sistema. Além disso, é fundamental manter uma alta consistência do saldo, independentemente do serviço que esteja realizando a operação.
Quais estratégias ou tecnologias vocês recomendariam para melhorar a escalabilidade e a consistência deste sistema de microserviços? Estou particularmente interessado em saber como grandes empresas lidam com cenários semelhantes e quais práticas são consideradas as melhores para garantir a confiabilidade, consistência dos dados e que seja performática, em um ambiente distribuído.
Pensei em usar um sistema de cache centralizado, usando o redis ou memcached. E todos os serviços consultaria esse cache.
Por favor, se já houver um padrão consolidado para esse problema, me indiquem vídeos, artigos e escrevam suas experiências.
Estou usando PHP/Laravel.
Considerações Adicionais
- Desafio: Alta carga de requisições HTTP para esse serviço onde está o saldo, e necessidade de manter a consistência do saldo em todas as operações, e que seja performático.
Agradeço antecipadamente por qualquer insight ou experiência que vocês possam compartilhar! Estou procurando por abordagens validadas que possam ajudar a superar esse desafio.