Идемпотентность операций в Go.

Ответ

Повторное выполнение операции дает тот же результат и не имеет дополнительных побочных эффектов. В Go: проверка по идемпотентному ключу (клиент шлет Idempotency-Key), кеш результата по ключу; при повторном запросе возвращать сохраненный ответ. Для сообщений - дедупликация по message id или бизнес-ключу в БД (INSERT ... ON CONFLICT DO NOTHING или проверка перед действием).

if key := r.Header.Get("Idempotency-Key"); key != "" {
    if cached, ok := cache.Get(key); ok { writeResponse(w, cached); return }
}
resp := doWork()
cache.Set(key, resp, ttl)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.