Вопрос проверяет умение сравнить два подхода к коммуникации между сервисами по критериям надёжности и связности.
REST API — синхронный запрос/ответ, клиент ждёт ответа от сервера и блокируется. Kafka — асинхронная передача сообщений: продюсер отправляет событие и продолжает работу, потребитель читает в своём темпе. Асинхронность снижает связанность и повышает отказоустойчивость.
Связанность:
- REST API требует доступности конечного сервиса в момент запроса.
- Kafka допускает временную недоступность консюмера: события аккумулируются в топике.
Производительность и масштабирование:
- REST ограничен задержками request/response.
-- Kafka поддерживает высокую пропускную способность и параллельную обработку.
Надёжность:
- При сбое REST-запроса нужно реализовывать retry-механизмы на клиенте.
- В Kafka гарантии доставки и повторное чтение уже накопленных сообщений.
Паттерны коммуникации:
- REST подходит для request–reply и CRUD-операций.
- Kafka удобен для event-driven архитектур и потоковой обработки.
Когда выбирать:
- REST для простых запросов и синхронного взаимодействия.
- Kafka для событийных систем и слабосвязанных микросервисов.