Estou desenvolvendo um sistema distribuído com microsserviços com apenas um banco de dados somente gravação e o restante somente leitura em replicação lógica
Meu desafio é ter consistência nos dados, principalmente no saldo que o cliente tem na conta
Como meu modelo de negócio exige necessariamente microsserviços para realizar atualizações nas tabelas do banco de dados, e dependendo da situação, é adicionado saldo na conta do cliente.
Minha dúvida é, como garantir a consistência do saldo do cliente caso ele realize algum processo que reduza o saldo da sua conta ao mesmo tempo que algum microsserviço também está manipulando o saldo da sua conta
Pensei em criar uma transação no banco de dados e utilizar imediatamente essa transação para alterar seu saldo enquanto o sistema termina de processar as atualizações nas outras tabelas que fazem parte do processo, pois isso bloqueia a leitura do saldo daquele cliente enquanto a transação não é concluída. finalizado, esta é a maneira mais correta?