Такой интеграционный тест вызывает API с уникальными данными и затем ограниченно ждёт соответствующее событие в Kafka, проверяя ключ, контракт и связь с запросом.
Узкими местами могут стать сеть, диски брокеров, репликация, память клиентов, медленная обработка и неравномерность партиций; важны также лимиты сообщений и восстановление после сбоя.
Тестовый consumer должен использовать отдельную group.id, а обычные тесты — изолированный topic или кластер. Consumers одной группы делят сообщения между собой.
Опишите конкретную асинхронную проверку: каким клиентом отправляли событие, как находили результат по correlation ID и как обеспечивали изоляцию и ограниченное ожидание.
Если это три consumers одной группы и все подписаны на topic из трёх партиций, обычно каждому назначают одну партицию. Три рабочих потока сами по себе такого назначения не создают.
Нагрузку оценивают по числу загрузок, размерам фотографий, пикам и времени обработки; эти данные определяют хранилище, параллелизм workers, партиции и допустимую очередь.
Передать байты изображения в Kafka технически можно, но обычно лучше хранить файл в объектном хранилище, а в событии передавать ключ, метаданные и идентификатор операции.
В автотестах Kafka проверяют контракт события и бизнес-эффект: отправку, обработку, ошибки, повторы и порядок в пределах нужной партиции, а не только наличие сообщения.
Опишите фактический путь события и границы доверия: producer мог писать прямо в Kafka или отправлять данные в отдельный ingestion API. API Gateway сам по себе не является обязательной частью Kafka-архитектуры.
Назовите реально использованную библиотеку и критерии выбора: async API, производительность, поддержка нужных возможностей Kafka и удобство сопровождения. Термин «классическая библиотека» нужно уточнить у интервьюера.
Для transactional outbox relay выбирает готовые непереданные события, публикует их в Kafka и после подтверждения отмечает отправленными. Бизнес-изменение и запись события ранее фиксируются одной транзакцией БД.