Проверяет умение проектировать системы с гарантированной доставкой сообщений.
Идемпотентность достигается за счёт ключа сообщения (partition key) и хранения обработанных ID (в БД или Redis). Повторные события просто игнорируются.
Задача: если Kafka отправила одно и то же сообщение несколько раз (например, при failover), обработка должна выполняться только один раз.
Методы:
Ключ события (message key):
Kafka гарантирует порядок внутри одного partition по ключу.
Хранение ID обработанных сообщений:
в Redis (ключ — ID, TTL для очистки);
в Postgres (таблица processed_messages).
Upsert: вставка с ON CONFLICT DO NOTHING.
Вывод: идемпотентность — обязательна для корректной работы систем с брокерами.
Уровень
Рейтинг:
4
Сложность:
8
Навыки
Golang
Redis
Kafka
Ключевые слова
Подпишись на Golang Developer в телеграм