TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Твой кролик писал

10 May, 11:06

Открыть в Telegram Поделиться Пожаловаться

Репост из: Yet Another Analyst
Sync-async, часть 3. Бытовое безумие

Продолжаем самую безумную серию канала. В предыдущих сериях мы говорили, что у сетевых протоколов нет свойства синхронности / асинхронности: раз, два.

Принято считать Polling, Callback, Webhook асинхронными паттернами. А в чем их асинхронность?

Я пользуюсь таким определением sync-async:

Синхронное взаимодействие — блокирующее взаимодействие, при котором клиент не может продолжить выполнение процесса, пока оно не завершится.

Асинхронное взаимодействие — НЕ блокирующее взаимодействие, при котором клиент может продолжить выполнение процесса, независимо от результата взаимодействия.


Что такое (Short) Polling?
Формально, его можно назвать асинхронным паттерном, т.к. после первого вызова соединение закрывается и технический процесс на клиенте не блокируется. Дальше просто добиваем статус регулярными запросами.

Но на уровне бизнес / интеграционной логики, мы не можем продолжить глобальный процесс — иначе мы бы не долбились за результатом.

Псевдо асинхронность приходится строить по двум банальным причинам:
каждое подвешенное соединение жрет ресурсы
чем дольше висит соединение, тем выше вероятность разрыва

Что такое Callback?
Если говорить о “классическом” коллбеке с двумя акторами, то здесь примерно та же история. Формально это можно обозвать асихнронщиной, но фактически нам нужно дождаться результата, чтобы продолжить бизнес-процесс. Получается та же история, что и с поллингом.

Возможен вариант коллбека, когда запрос кидает Service A, обрабатывает его Service B и отправляет ответ в Service C. Адрес последнего сервиса можно забить в настройки или передавать в исходном запросе. Считать ли это коллбеком — вопрос холиварный. Я буду считать это схемой из двух вебхуков.

Что такое Webhook?
Выглядит как одиночный синхронный запрос-ответ. Но на уровне общей картины это передача события поверх HTTP, где актор делиться инфой о последних происшествиях с подписанными соседями, не требуя ничего в ответ. Здесь HTTP-response — формальность самого протокола. Выглядит как событийная архитектура, только без очередей.

Получается, Polling и Callback — псевдо асинхронные паттерны для реализации сихнронных шагов бизнес-процесса, а невзрачный Webhook — полноценная асинхронщина, да еще и в событийной парадигме?

Только не говорите об этом на собесах, и не убеждайте коллег. Совы не всегда то, чем кажутся.

12 0 0
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot