Повтор запиту й довга відповідь

Мережа рветься посеред операції. Натисніть кнопку двічі й подивіться, що опиниться в базі — з ключем ідемпотентності й без нього.

Натисніть на ділянку схеми, щоб відкрити крок.

Картина цілком

Ключ на операцію перетворює повтор із другого списання на читання готового результату. Асинхронний контракт перетворює очікування на підписку. Обидва прийоми про одне: мережа ненадійна, і це норма, а не виняток.

Що всередині

  1. 1 Запит і обірваний зв’язок — Увімкніть «зламати мережу після списання» й натисніть кнопку двічі.
  2. 2 Що робить сервер — Ключ вигадує клієнт, один на операцію, і повторює його за кожної нової спроби.
  3. 3 Без ключа — дублікати — Повтори роблять не лише люди: їх роблять браузер, проксі та черга задач.
  4. 4 З ключем — один запис — Рядок із ключем створюється до самої дії, інакше дві одночасні спроби прослизнуть повз одна одну.
  5. 5 Довга відповідь: 504 чи 202 — Для потоку в проксі має бути вимкнена буферизація, інакше відповідь прийде одним шматком у самому кінці.

Інтерактивні пояснення

1 / 5