INTEGRITY Документация

Гарантии доставки

Гарантии доставки определяют, насколько строго система обмена сообщениями обеспечивает доставку обрабатываемых сообщений.

Чем строже гарантии доставки сообщений, тем больше проверок и подтверждений требуется системе, чтобы гарантировать доставку сообщений, либо тем больше состояния ей нужно хранить, чтобы сообщение доставлялось не более заданного числа раз. Это увеличивает задержку в системе и снижает её общую пропускную способность. Для подтверждения каждого сообщения может потребоваться дополнительное внутреннее подтверждение и соответствующее число дополнительных обращений туда и обратно.

Если повторная обработка одного и того же сообщения может привести к нежелательному поведению, генерируйте уникальный ID при записи сообщения в очередь и используйте его как первичный ключ при вставке в базу данных и (или) как ключ идемпотентности для устранения дублей после обработки. Например, если использовать этот ключ идемпотентности как ID в вышестоящем email API или платёжном API, эти сервисы смогут сами отклонять дубликаты, и вашему приложению не придётся хранить дополнительное состояние.