Каждое событие имеет уникальный event_id. Consumer хранит обработанные ID в таблице processed_events. Перед обработкой — INSERT с ON CONFLICT DO NOTHING. Если вставка прошла — обрабатываем, если конфликт — пропускаем. Обработка и запись ID должны быть в одной транзакции. Для очистки — TTL на старые записи. Альтернатива — exactly-once delivery в Kafka с idempotent producer.
Как дедуплицировать события?
Middle
82 просмотровAFK Offer AI
Как работать с distributed transactions в Go?