Клиент генерирует уникальный ключ (idempotency key) и шлет с запросом; сервер кеширует результат по ключу и при повторном запросе с тем же ключом возвращает сохраненный ответ. В Go: middleware извлекает ключ из заголовка, проверяет хранилище (Redis, БД); при совпадении - возврат кеша, иначе выполнение handler и сохранение. Защита от дублей при ретраях и таймаутах.
key := r.Header.Get("Idempotency-Key")
if key == "" { ... }
if cached := store.Get(key); cached != nil { writeCached(w, cached); return }
resp := handle(r)
store.Set(key, resp, ttl)