Imagem de fundo

Em arquiteturas de microsserviços, a autonomia dos serviços favorece escalabilidade e e...

Em arquiteturas de microsserviços, a autonomia dos serviços favorece escalabilidade e evolução independente, mas impõe desafios relevantes na gestão de dados. A adoção do princípio “banco de dados por serviço” reduz acoplamento, porém dificulta transações distribuídas tradicionais, exigindo estratégias arquiteturais para manter consistência e confiabilidade em operações que atravessam múltiplos serviços. Uma abordagem recorrente é o padrão Saga, que coordena transações locais e compensações, evitando bloqueios globais típicos de transações ACID distribuídas.


Considere um sistema de marketplace implementado em microsserviços, com os seguintes serviços: Pedido, Pagamento e Estoque, cada um com seu próprio banco de dados. Ao confirmar uma compra, o fluxo exige: (1) criar o pedido, (2) reservar o estoque e (3) confirmar o pagamento. Em caso de falha em qualquer etapa, o sistema deve retornar a um estado consistente, sem depender de uma transação distribuída única com bloqueio entre bancos.


Assinale a alternativa que descreve corretamente a estratégia arquitetural mais adequada, nesse cenário, para garantir consistência de dados sem uso de transações distribuídas ACID, reduzindo risco de bloqueios e aumentando resiliência.


A

Implementar uma transação distribuída em dois fases (2PC) entre os três bancos, pois elimina a necessidade de tratamento de falhas e garante atomicidade global.


B

Centralizar todos os dados em um único banco relacional compartilhado pelos três serviços, pois isso preserva independência dos microsserviços e evita acoplamento.


C

Aplicar o padrão Saga, compondo transações locais em cada serviço e definindo ações compensatórias para desfazer etapas concluídas quando ocorrer falha posterior.


D

Executar as três operações em paralelo e aceitar inconsistência temporária sem correção, pois microsserviços não exigem consistência entre serviços.