Привет! Я - Лера, и я — человек, который однажды понял, что прошлый опыт не помешает построить что‑то новое. Эту статью я пишу для тех, кто хочет разобраться в сложных понятиях простыми словами.Идемпотентность стала моей «любимой» темой после одного из первых…
Идемпотентность в System Design: полный примерИдемпотентность часто упоминается при проектировании систем (system design). Ниже будет простыми словами объяснено, что это такое, далее мы разберём основные детали идемпотентности, часто понимаемые неверно и, наконец, проиллюстрируем её на полном примере. Что такое идемпотентность?Операция является идемпотентной, если при однократном или многократном выполнении она всякий раз даёт один и тот же результат. Читать далее
Представьте, что вы нажимаете кнопку «Отправить заказ» в интернет-магазине. Если страница зависла, вы нажмёте её ещё раз. Идемпотентная система обработает повторный запрос так, что вы не получите два одинаковых заказа и с вашей карты не спишутся деньги дважды. Неидемпотентная — создаст два заказа и спишет средства дважды. Читать далее
Платёжный сервис прошёл ревью, тесты зелёные, в базе один успешный платёж — а с карты списали деньги дважды. Причём в двух инцидентах к дублю привели разные сценарии. Разбираемся по коду и логам, откуда взялись повторные списания и как построить идемпотентность, которая закрывает оба случая. Проверить решение