Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.
Как обработать Foreign Key violation в денормализованной таблице consumer-а, если связанные события приходят из Kafka в неправильном порядке?
Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Kafka не гарантирует общий порядок между разными партициями и топиками. При отсутствии связанной записи событие лучше надёжно отложить и повторить после зависимости, а не терять или игнорировать FK.
Если порядок нужен в пределах aggregate, используйте согласованный ключ партиционирования, но учтите события из разных потоков. Consumer может хранить pending-события, версии и причины ожидания с ограниченными retry и reconciliation. Иногда модель чтения допускает временно неполную запись, но это явное проектное решение. Offset фиксируют после надёжного сохранения состояния обработки, а не после того, как исключение просто проглотили.