Вы хотите убрать дубликаты для purchase_succeeded. Какой dedup_key наиболее безопасен, чтобы не «съесть» реальные повторные покупки одного пользователя?

AИспользовать dedup_key=user_id, чтобы у пользователя была только одна покупка.
BИспользовать dedup_key=event_time, потому что одинаковое время означает дубликат.
CИспользовать dedup_key=order_id (или transaction_id) и дополнительно event_id для повторных отправок одного и того же события.
DИспользовать dedup_key=amount_minor, потому что одинаковая сумма означает дубликат.
Правильный ответ. Дедупликация должна опираться на идентификатор транзакции (order_id), а не на время или пользователя.

Разбор

Пользователь может совершать несколько покупок, поэтому user_id не подходит как ключ дедупа. Время устройства может быть неточным, а разные покупки могут происходить близко по времени. Сумма также не уникальна и приведёт к потере валидных событий. Order_id или transaction_id отражают уникальность покупки, а event_id помогает удалять повторные доставки одного и того же события в пайплайне logging.

Проверь себя · 1/3разбор после ответа
В мобильном приложении события могут копиться офлайн и отправляться позже. Какие поля времени лучше заложить в logging, чтобы корректно строить user journey и контролировать задержки?
Тренировать продукт в Telegram

Ещё вопросы по теме «Инструментация и качество данных»