

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Padrão Saga
<a name="saga-pattern"></a>

O padrão saga é um padrão de gerenciamento de falhas que ajuda a estabelecer a consistência em aplicativos distribuídos e coordena as transações entre vários microsserviços para manter a consistência de dados. Um microsserviço publica um evento para cada transação e a próxima transação é iniciada com base no resultado do evento. Ele pode seguir dois caminhos diferentes, dependendo do êxito ou da falha das transações. 

A ilustração a seguir mostra como o padrão saga implementa um sistema de processamento de pedidos usando AWS Step Functions. Cada etapa (por exemplo, “ProcessPayment”) também tem etapas separadas para lidar com o sucesso (por exemplo, "UpdateCustomerAccount“) ou a falha (por exemplo," SetOrderFailure “) do processo. 

![\[Padrão Saga\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/modernization-data-persistence/images/enabling-diagram6.png)


Você deve considerar o uso desse padrão se:
+ O aplicativo precisar manter a consistência de dados em vários microsserviços sem um acoplamento forte.
+ Houver transações de longa duração e você não quiser que outros microsserviços sejam bloqueados se um microsserviço for executado por muito tempo.
+ Você precisar ser capaz de reverter se uma operação falhar na sequência.

**Importante**  
O padrão saga é difícil de depurar e sua complexidade aumenta com o número de microsserviços. O padrão requer um modelo de programação complexo que desenvolva e projete transações compensatórias para reverter e desfazer mudanças. 

Para obter mais informações sobre a implementação do padrão saga em uma arquitetura de microsserviços, consulte o padrão [Implementar o padrão saga sem servidor usando o AWS Step Functions](https://docs.aws.amazon.com//prescriptive-guidance/latest/patterns/implement-the-serverless-saga-pattern-by-using-aws-step-functions.html) no site de Orientação prescritiva da AWS .