📌 Пример интеграции Kafka + Backend + БД + Внешняя система ⭐️
В этом месяце мы разбираем интеграционный процесс в системе #CityGA:
автоматическая рассылка мероприятий для города, получаемых из #KudaGoAPI, с отправкой email пользователям через #DashaMailAPI.
Прежде чем поставить задачу на интеграцию, мы:
✅ Описали архитектуру в C4
✅ Изучили API-документацию внешних систем
✅ Выполнили исследовательское тестирование API в Postman
✅ Сделали черновой Use Case по процессу
✅ Показали процесс на UML-диаграмме
❗️ Несмотря на то, что в Use Case рассылка email и сбор данных были объединены, на самом деле это два разных процесса и две разных задачи на разработку.
Почему?
Kafka используется, чтобы вынести отправку email в отдельный асинхронный поток. Основная джоба перебирает связки город + категории и готовит данные, а затем отправляет их в Kafka. Уже после этого сервис уведомлений независимо обрабатывает события (сообщения) и рассылает письма.
Так мы не блокируем работу основного Backend и делаем процесс более надёжным и масштабируемым: сбор данных и рассылка работают параллельно, каждый в своей зоне ответственности.
⭐️ Подготовила для вас заполненный шаблон постановки задачи на интеграцию с внешней системой KudaGo и внутренней интеграцией с Kafka.
Внутри:
▫️ общее описание процесса
▫️ схема архитектуры в C4 — только часть, относящаяся к автоматизации этого процесса
▫️ детальный технический Use Case с альтернативными сценариями
▫️ пример JSON-сообщения для Kafka
▫️ UML Sequence для описанного Use Case с исходным кодом для PlantUML
▫️ маппинги данных: БД–Kafka–API KudaGo
▫️ требования к логированию.
🔖 Cохраняйте образец требований на интеграцию в личный архив. Примеры всегда полезны 😉
#ИнтеграцииGA