← Questões de Engenharia de Software

Engenharia de Software · FGV · 2023

Questão comentada de Engenharia de Software

O padrão Saga é uma maneira de gerenciar a consistência de dados entre microsserviços em cenários de transações distribuída. Sobre esse padrão, assinale a afirmativa correta.

Gabarito: E

O padrão Saga aparece quando você precisa coordenar uma operação que passa por vários microsserviços, mas sem depender de uma transação ACID única atravessando todos eles. Em vez disso, cada serviço executa sua parte e, se algo falhar no meio do caminho, entram as ações de compensação para desfazer logicamente o que já foi feito. É uma solução muito usada em arquitetura de microsserviços porque tenta equilibrar consistência e autonomia dos serviços. A grande sacada é que Saga não é um "rollback mágico" igual ao do banco de dados tradicional. As compensações procuram trazer o sistema para um estado aceitável, mas podem não restaurar exatamente cada detalhe anterior. Em outras palavras, o mundo dos microsserviços é menos elegante que o do banco relacional, e a vida segue assim mesmo. Existem duas formas clássicas de implementar Saga: coreografia e orquestração. Na coreografia, os serviços reagem a eventos, sem um controlador central. Na orquestração, há um componente central que dita a sequência das etapas e coordena o fluxo. Por isso, a afirmativa correta é a que descreve a saga orquestrada com um coordenador centralizado para definir a ordem de execução dos microsserviços. Em termos doutrinários, isso está alinhado com a prática de consistência eventual e transações distribuídas em microsserviços, tema recorrente em arquitetura de software moderna, embora não haja um fundamento legal específico aqui. O importante para prova é: Saga lida com consistência distribuída, compensação não é rollback puro, e orquestração envolve coordenação central.

Continue treinando

Questões relacionadas