TGViewer
Мастерская IT-решений Мастерская IT-решений @solutionstudio · 161 subscribers
Post #129 85
Продолжаем тему проблем Брокера. Предыдущие части
eventual consistency про бизнес-процессы
RPC поверх брокера и его ловушки
Брокер как единая точка отказа - часть 1


Лавина повторных попыток после восстановления
Миллионы отложенных сообщений хлынут на только что очнувшиеся сервисы и добьют их.

Решение: Делаем лавину управляемой и превращаем ее в поток
♦️Rate limit на уровне продюсера: Процесс, считывающий таблицу Outbox не должен бездумно выгребать все накопившиеся сообщения. Используйте семантику LIMIT в запросе к outbox и паузу (возможно даже, экспоненциальную) между итерациями. Таким образом восстановление получится плавным.

♦️Rate limit на уровне потребителя: Консьюмер должен уметь замедляться сам. Используйте механизмы брокера (например, fetch.max.bytes и max.poll.records в Kafka) для уменьшения объема данных за одну итерацию при обнаружении высокой нагрузки или ошибок обработки.

♦️Приоритизация: Если это возможно, делайте приоритеты у очередей и топиков. При восстановлении в первую очередь обрабатываются критические события.


Каскадные сбои и бизнес-дедлоки
Сервис А ждет события от сервиса Б, который не может его отправить. Система впадает в состояние распределенного дедлока, но на уровне бизнес-логики.


Решение: Проектирование для частичной деградации и таймаутов
♦️Сага (моя любимая): Еслив вашем случае это возможно, то разбейте бизнес-операцию на этапы. А Сага позволит сделать эти этапы независимыми друг от друга, но при этом связанными событиями.

♦️Таймауты и статусы «Ожидание»: Любое ожидание события в бизнес-процессе должно иметь четкий таймаут. По его истечении процесс переходит в статус "требуется ручной разбор" или запускает компенсацию. Мониторинг таких «зависших» процессов — ключевая метрика.

♦️Асинхронные HTTP-вызовы с колбэками: Иногда лучше не ждать событие через брокер, а отправить команду по HTTP, немедленно получив 202 Accepted и id операции. Сервис-получатель позже отправит результат на заранее оговоренный callback-url. Это делает ожидание явным и управляемым. Это самый распространенный паттерн при генерации отчетов


Брокер, не болей! :)
Telegram Мастерская IT-решений Переходим к следующему мифу. ⚓️ Когда eventual consistency — это не про данные, а про бизнес-процессы Моя "любимая" согласованность... в кавычках, потому что, мне кажется, я на своих докладах всем вынесла мозг с ней. Рассмотрим очередную ее грань... Асинхронность…
More from @solutionstudio
  1. Sep 23, 2026Начинаем розыгрыш 1 билета на Стачку! Стачка - это шанс послушать крутых спикеров, понетво…
  2. Sep 22, 2026Привет, дорогие! Соскучились?) А я к вам с чем-то приятным. Все же знают, что скоро идём н…
  3. Aug 11, 2026Подводные камни JWT 🟣 Проблема инвалидации Это ахиллесова пята stateless-токенов. Предста…
  4. Aug 5, 2026JWT. Коробка с секретом, в которую можно заглянуть В прошлом посте мы остановились на том,…
  5. Jul 31, 2026Продолжаем мысль предыдущего поста. ❇️ Альтернатива: "Коробка с секретом" А что, если серв…
  6. Jul 28, 2026Точка входа. Почему сессия это сложно, и при чем тут токены Привет, коллеги. Сегодня вкаты…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →