TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1075 7.36K
👻 Проблема фантомной записи

В проде бывает так, что одна и та же операция часто повторяется: клиент не дождался ответа и ретраит, балансер порвал соединение, очередь переиграла сообщение. Вспоминаем про идемпотентность - это правило «повтор не должен создавать новый платёж/заказ».

Чтобы отличать повтор от новой операции, используют idempotency key (ключ идемпотентности). Это обычная уникальная строка-идентификатор, которую клиент или апстрим отправляет вместе с запросом (часто в заголовке `Idempotency-Key`). Сервис сохраняет этот ключ у себя и связывает с результатом операции.

Далее приходит запрос с тем же ключом - сервис не выполняет бизнес-действие второй раз, а дедуплицирует на основе ключа идемпотентности. Но так ли всё просто? Многолетний опыт анализа инцидентов показал, что на практике большое количество систем всё же регулярно допускают дублирования, хотя делали всё по методичке.

В статье как раз речь про не самые очевидные ошибки и то, о чём стоит подумать, при реализации идемпотентного API.

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1043208/
  • ❤ 17
  • 👍 10
  • ⚡ 3
  • 🔥 1
  • 👌 1
More from @spring_aio
  1. Oct 1, 2026JEP 544: JVM будет сохранять машинный код между запусками JEP 544 (Ahead-of-Time Code Comp…
  2. Sep 30, 2026🍃 Переписываем всё на Rust, JavaScript — кошмар, AI против Vaadin | Spring АйО Подкаст №7…
  3. Sep 29, 2026⚡️ AI-плагин уже в OpenIDE Pro Вышли новые версии OpenIDE и OpenIDE Pro: AI-плагин теперь…
  4. Sep 28, 2026🧑‍💻 Скрытая возможность конфигурации Spring Boot, о которой мало говорят Представим, что…
  5. Sep 25, 2026✏️ В JavaDoc предлагают добавить заметки, которые сложно пропустить В JavaDoc предлагают д…
  6. Sep 24, 2026🔥 Запись открытой лекции уже доступна Вчера прошла первая открытая лекция курса «Java в п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →