Idempotência
A estratégia de idempotência é amplamente aplicada para evitar, por exemplo, a cobrança de uma segunda via de pagamento recebida na API. Para melhor visualizar, estamos falando da solicitação com um comando POST/PUT/PATCH ou de um evento que chega duplicado pelo Stream.
Alguns serviços do Stream eventualmente enviam mensagens em duplicado para garantir alta velocidade de entrega e isso força os aplicativos a controlar a idempotência.
O Devprime oferece uma abordagem muito flexível para a configuração do serviço que pode ser configurada para iniciar automaticamente, por parâmetro enviado pelo consumidor e/ou restrito a processos específicos de acordo com a estratégia de cada microsserviço.
O recurso de idempotência pode ser configurado para funcionar automaticamente usando o parâmetro “action” como “auto” e o parâmetro “flow” como “backend” habilitando o recurso sem a necessidade de passar uma chave estrangeira ao consumir a API.
Para visualizar melhor na prática o cenário é essencial acompanhar a sequência de imagens onde demonstramos no Log todo o processo. O Log Automático é gerado pela abordagem nativa de Servabilidade.
Fazendo o primeiro post na API de pedidos
Ao examinar o log, visualize as informações de idempotência como ativas nessa solicitação, iniciando a proteção contra duplicidade.
Fazer um segundo post na API de pedidos idêntico ao anterior
Neste momento estamos repetindo o cenário só que agora teremos outra resposta no controle da idempotência.
Ao analisar o resultado da API vemos a recusa da solicitação duplicada
![Idempotência de recursos do Devprime]@@@@5@@@@@
Quando você olhar para o Log na seção idempotência você vai encontrar o “Rejeitar”
![Capacidades Devprime idempotência]@@@@6@@@
Configuração em duas etapas da idempotência
A configuração é um processo simples e personalizável
Habilite Idempotência na chave “Devprime_App” definindo o valor “Habilitar” como “true”.
|
|
Adicione uma segunda persistência Redis na chave “Estado” para informações de controle de transações automáticas de idempotência.
|
|
Ativando idempotência manualmnte
Nos cenários desejados, você pode configurar manualmente o suporte à idempotência.
|
|
Você acabou de conferir um poderoso recurso presente no Devprime Stack. Use a plataforma Devprime para acelerar a jornada de modernização de aplicativos e desenvolvimento de plataformas digitais.
Mais detalhes sobre cenários de deidempotência
Implementando idempotência em microsserviços
Idempotência em microsserviços e APIs REST
Implementando idempotência em microsserviços