Как реализовать idempotent Consumer для очереди сообщений?

Senior
221 просмотров
AFK Offer AI

Idempotent consumer обрабатывает дублированные сообщения безопасно. Источники дублей: retry при network error, at-least-once delivery гарантии брокера. Стратегия: каждое сообщение имеет уникальный messageId. Consumer: перед обработкой проверяй processed_messages table — SET: INSERT INTO processed_messages(id) VALUES($1) ON CONFLICT DO NOTHING RETURNING id. Если 0 строк вернулось — уже обработано, пропускай. Redis: SET messageId 1 NX EX 86400. Транзакционный outbox + idempotent consumer — фундамент надёжного event processing.

Следующий вопрос

Что такое Bulkhead паттерн в Node.js?