Как обработать Foreign Key violation в денормализованной таблице consumer-а, если связанные события приходят из Kafka в неправильном порядке?

Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.

Короткий ответ

Что ответить на собеседовании

Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.

Подробный разбор

Ответ с пояснениями

Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.

Если порядок нужен в пределах aggregate, используйте согласованный ключ партиционирования, но учтите события из разных потоков. Consumer может хранить pending-события, версии и причины ожидания с ограниченными retry и reconciliation. Иногда модель чтения допускает временно неполную запись, но это явное проектное решение. Offset фиксируют после надёжного сохранения состояния обработки, а не после того, как исключение просто проглотили.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее