Практикум: идемпотентность в цепочке сервисов¶
Три сервиса в одном процессе — шлюз, заказы и платежи. Каждый вызывает следующий по HTTP со своими повторными попытками; хранилище идемпотентности использует Redis в контейнере. Первая попытка всегда длится дольше таймаута вызывающей стороны: списание происходит, а ответ теряется. Сравниваются четыре подхода: без идемпотентности; новый ключ на каждую попытку; передача исходного ключа по всей цепочке; отсутствие заголовка, когда каждый сервис вычисляет ключ по отпечатку своего запроса.