MakeHybrid
Запись на звонок
Русский

Идемпотентность

Сделать одно и то же дважды и получить один результат — свойство, делающее повторы и дубли безобидными.

Операция идемпотентна, когда выполнение её дважды оставляет мир таким же, каким его оставило выполнение один раз. Удалить файл идемпотентно. Отправить сообщение — нет, и в этой асимметрии живёт большинство ошибок с дублями сообщений.

Где она действительно нужна

Как получить её дёшево

Ведите таблицу идентификаторов, на которые вы уже отреагировали, и вставляйте в неё с ограничением уникальности до того, как делать работу. Если вставка не прошла, кто-то уже это обработал. Вот и вся техника; ей не нужна библиотека, и она переживает перезапуск посередине, которого версия в памяти не переживает.

Вставляйте до, а не после. Вставка после оставляет окно между тем, чтобы сделать дело, и тем, чтобы записать, что вы его сделали, а падение в этом окне — ровно тот случай, который таблица и должна была закрыть.

Что взять идентификатором

То, как отправитель называет событие, если он даёт имя. Если не даёт, соберите ключ из полей, которые делают событие именно этим событием — аккаунт, диалог и сообщение, скажем, — и возьмите хеш. Ключ, выведенный из отметки времени, — не ключ: у повтора она другая.

Идемпотентность — не дедупликация в интерфейсе. К тому моменту, когда дубль доходит до экрана, второе сообщение уже отправлено. Проверка живёт в самом начале обработчика, до того как что-либо уйдёт.

Частые вопросы

Делают ли ИИ-агенты дубликаты вероятнее?

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

Идемпотентна ли кнопка «Применить в Google Ads» в проектной комнате?

Предложение в комнате выполняется один раз. Повторное нажатие на неё ничего не меняет.

Сделайте так, чтобы это работало само

Расскажите, чем занимается ваш бизнес, — и это станет вашей собственной услугой и продуктом в одном: работа идёт сама, под вашим именем, на ваших аккаунтах и с вашим ключом ИИ. Первые 30 дней бесплатны, и ничего из этого не требует разработчика.

Начать пробный период