Сначала выясните, что считается одной бизнес-записью, и проследите её путь по идентификаторам и логам. Обычно нужны стабильный внешний ключ и идемпотентная обработка повторов.
Тестировщик нашёл дефект: начали появляться дубли записей из внешней интеграции (две одинаковые записи с разными ключами). Как исследовать проблему и что делать?
Сначала выясните, что считается одной бизнес-записью, и проследите её путь по идентификаторам и логам. Обычно нужны стабильный внешний ключ и идемпотентная обработка повторов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала выясните, что считается одной бизнес-записью, и проследите её путь по идентификаторам и логам. Обычно нужны стабильный внешний ключ и идемпотентная обработка повторов.
Разные внутренние ключи не доказывают, что сущности различны. Сравните внешний идентификатор, источник, время, тело события и повторные доставки; проверьте ретраи после таймаута, параллельную обработку и изменения маппинга. Дедупликацию закрепляют уникальным ограничением на бизнес-ключ, например (source, external_id), и атомарной записью. Уже созданные дубли объединяют только после проверки зависимостей и резервной копии. Не удаляйте одну строку случайно: на неё могут ссылаться платежи или другие сущности.