Kafka сохраняет порядок внутри партиции, а гонки бизнес-операций устраняют ключом сущности, последовательной обработкой, версиями и идемпотентностью.
Как решается проблема гонки сообщений в Kafka?
Kafka сохраняет порядок внутри партиции, а гонки бизнес-операций устраняют ключом сущности, последовательной обработкой, версиями и идемпотентностью.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Kafka сохраняет порядок внутри партиции, а гонки бизнес-операций устраняют ключом сущности, последовательной обработкой, версиями и идемпотентностью.
Сначала уточняют, что названо гонкой: переупорядочивание, повторная доставка или конкурентное изменение данных. События одной сущности направляют в одну партицию по стабильному ключу. Внутри consumer нельзя бесконтрольно распараллеливать их обработку. Сохраняют идентификатор события и версию сущности, чтобы повтор или устаревшее событие не меняли состояние второй раз. Offset подтверждают после успешной обработки. Транзакции Kafka помогают для чтения и записи в Kafka, но не делают внешнюю БД автоматически частью той же транзакции.