Как избежать повторной отправки?
Как избежать повторной отправки?
Идемпотентность и учёт состояния.
Ретраи из-за сети или багов могут отправить одно письмо дважды. Ниже — как это предотвратить.
Создание ресурсов: clientId
Для create (ящики, pod, webhook, черновики) передайте clientId: если ресурс уже есть, API вернёт его, а не создаст дубликат.
TypeScript
Отправка писем: не через clientId на send
messages.send без встроенной идемпотентности ключа — логика в приложении.
Метки как состояние
TypeScript
Черновики для критичных писем
TypeScript
После отправки черновик удаляется — повторный send не продублирует письмо.
Практика
clientIdна всех create из бизнес-логики (order-${id}-...), не случайный UUID- Метки против двойной обработки одного сообщения
- Черновики там, где дубликат недопустим
Подробнее: Идемпотентность.
