⏯ ЭПИЗОД 52:
Асинхронная интеграция через Webhook и брокер: разбор задачи для Middle+ системного аналитика
Разницу между polling и webhook сегодня объяснит почти каждый. А потом на столе оказывается реальная задача: внешний ИИ-сервис генерирует видео несколько минут, пользователь всё это время смотрит в интерфейс и видит прогресс по генерации. И теория заканчивается. Где хранить статус? Кто кого опрашивает? Нужен ли тут брокер?
🔗 Страница эпизода
В выпуске разбираем задачу на асинхронную интеграцию целиком — от условия до постановок задач для разработчиков. Отдельно проходим альтернативные сценарии и какие страховочные механизмы закладывать.
Актуален всем, кто проектирует интеграции с внешними сервисами, готовится к техническому собеседованию на Middle+ или хочет перестать выбирать между polling, webhook и брокером наугад 🙌
Тайм-коды к эпизоду:
00:00:00 | Интро
00:00:18 | Введение: суть задачи и знакомство со спикером
00:03:01 | Задача на асинхронную интеграцию для Middle+ системного аналитика: требования, API, макеты
00:08:17 | С чего начать работу над реальной задачей: план работы аналитика
00:12:28 | API-документация сервиса генерации видео с ИИ
00:14:06 | Синхронные и асинхронные интеграции: polling и webhook
00:22:53 | Асинхронная интеграция через брокер: RabbitMQ и Kafka
00:30:10 | API-документация сервиса генерации видео с ИИ — продолжение
00:38:13 | Проектируем архитектуру асинхронной интеграции
00:42:07 | Решение 1. Монолит без брокера
00:57:46 | Решение 2. Монолит с брокером RabbitMQ
01:18:20 | Решение 3. Микросервисная архитектура
01:21:27 | Если webhook не пришёл: ретраи и страховочный механизм
01:23:57 | Как отменить или прервать асинхронный процесс
01:26:43 | Ошибки, зависшие задачи и другие сложные сценарии
01:27:59 | Как декомпозировать интеграцию на задачи для разработчиков
01:31:41 | Где ещё применим такой подход
01:32:23 | Итоги, материалы и рекомендации
Ведущая:
⭐ Екатерина Ананьева
Основатель сообщества Системных Аналитиков GetAnalyst
Подкаст сообщества
Системных Аналитиков
📱 TG 💙 ВК 💬 Max
Post #131
390