Padrão Saga - AWS Orientação prescritiva

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

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

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 no site de Orientação prescritiva da AWS.