Эпизод 52.

Разницу между polling и webhook сегодня объяснит почти каждый. А потом на столе оказывается реальная задача: внешний ИИ-сервис генерирует видео несколько минут, пользователь всё это время смотрит в интерфейс и видит прогресс по генерации. И теория заканчивается. Где хранить статус? Кто кого опрашивает? Нужен ли тут брокер?
В выпуске разбираем задачу на асинхронную интеграцию целиком — от условия до постановок задач для разработчиков. И главное, три варианта архитектуры под одну и ту же задачу: монолит без брокера, монолит с RabbitMQ и микросервисное решение, с разбором, где каждый ломается. Отдельно проходим альтернативные сценарии и какие страховочные механизмы закладывать.
Telegram-канал сообщества: https://t.me/getanalysts
VK сообщество: https://vk.ru/getanalyst
Выпуск актуален всем, кто проектирует интеграции с внешними сервисами, готовится к техническому собеседованию на Middle+ или хочет перестать выбирать между polling, webhook и брокером наугад.
Максимум практики по системному анализу и проектированию интеграций.
RuTube
VK
YouTube
Если плеер YouTube не запускается, необходимо включить VPN, либо переключиться на другой плеер (вкладки сверху).
Тайм-коды эпизода:
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 | Итоги, материалы и рекомендации
👉 К тайм-коду 00:08:17: С чего начать работу над реальной задачей: план работы аналитика
Как аналитику работать с задачами на интеграции — пошаговая инструкция:
https://habr.com/ru/articles/735332/
👉 К тайм-коду 00:14:06 | Синхронные и асинхронные интеграции: polling и webhook
Подкаст по Polling и WebHook со статьей к нему:
https://getanalyst.ru/podcast/webhooks
👉 К тайм-коду 00:22:53 | Асинхронная интеграция через брокер: RabbitMQ и Kafka
Про подробный разбор задачи на интеграцию с вариантом микросервисной архитектуры:
https://getanalyst.ru/podcast/system-analyst-interview-integrations
Брокеры Kafka и RabbitMQ:
https://getanalyst.ru/podcast/kafka-for-system-analysts
https://getanalyst.ru/podcast/rabbitmq-vs-kafka
👉 К тайм-коду 00:54:20 | Решение 1. Монолит без брокера
Использование SSE для обновления статуса по задаче на Frontend в режиме реального времени:
https://getanalyst.ru/podcast/sse
👉 К тайм-коду 00:54:20 | Решение 1. Монолит без брокера
Использование SSE для обновления статуса по задаче на Frontend в режиме реального времени:
https://getanalyst.ru/podcast/sse
👉 К тайм-коду 00:59:0 | Решение 2. Монолит с брокером RabbitMQ
Kafka или RabbitMQ: как выбрать брокер под задачу
Подборка материалов по брокерам для системных аналитиков
👉 Дополнительно
Полный Практический гайд по UML-Sequence + бесплатный AI-бот от GetAnalyst:
https://t.me/getanalysts/3039
Подборка примеров постановок задач на Интеграцию систем - большая база знаний системного аналитика
Все примеры и AI-скилл для работы с задачами на интеграции можно забрать в дополнительных материалах к этому эпизоду подкаста.
✔️ Условие задачи
✔️ Draw io с условиями задачи и схемами
✔️ Интерактивный макет (открывать html-файл через любой браузер)
Получайте полезные материалы и учитесь новому каждый день в наших социальных сетях.
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.