Kafka и RabbitMQ — популярные инструменты для асинхронного обмена сообщениями. Для QA это важная зона риска: когда данные не передаются мгновенно по схеме request-response, появляется больше состояний, ретраев, задержек и сложностей в диагностике.
Что меняется в асинхронной модели
- →Отправка события не означает немедленный результат для пользователя.
- →Между producer и consumer может быть задержка, повторная доставка или сбой обработки.
- →Появляются вопросы идемпотентности, порядка сообщений и повторной обработки.
Что важно QA
- →Проверять, дошло ли событие до нужного consumer.
- →Проверять, что сообщение не потерялось и не обработалось дважды без защиты.
- →Смотреть на dead-letter queues, retries и compensating behavior.
- →Понимать, какое состояние допустимо как временное, а какое уже является дефектом.
Типовые дефекты
- →Сообщение не отправилось или не было обработано.
- →Одно и то же сообщение вызвало побочный эффект несколько раз.
- →Сервис обработал события в неправильном порядке.
- →Система показывает “успех”, хотя downstream processing ещё не завершён или уже упал.
Асинхронные системы требуют от QA терпения и точности: здесь важно проверять не только конечный результат, но и путь данных между компонентами.