Repetição de requisição e resposta lenta

A rede cai no meio de uma operação. Aperte o botão duas vezes e veja o que sobra no banco de dados, com chave de idempotência e sem ela.

Toque em uma parte do esquema para abrir o passo.

O quadro inteiro

Uma chave por operação transforma a repetição na leitura de um resultado já guardado. Um contrato assíncrono transforma a espera em assinatura. Os dois falam da mesma coisa: a rede não é confiável, e isso é o normal, não a exceção.

O que tem dentro

  1. 1 A requisição e a conexão que cai — Ligue «quebrar a rede depois da cobrança» e aperte o botão duas vezes.
  2. 2 O que o servidor faz — A chave é inventada pelo cliente, uma por operação, e repetida em cada nova tentativa.
  3. 3 Sem chave: duplicatas — Repetições não vêm só de pessoas: vêm do navegador, dos proxies e das filas de tarefas.
  4. 4 Com chave: um único registro — A linha é criada antes da própria ação; senão, duas tentativas simultâneas passam uma pela outra.
  5. 5 Resposta lenta: 504 ou 202 — O fluxo exige o buffering do proxy desligado; senão a resposta chega inteira só no fim.

Explicações interativas

1 / 5