▶️ Переглянути відеоурок (19 хвилин)
П'ятниця, 23:00. Stripe лягає. Ваші queue workers цього не помічають — вони продовжують відправляти payment jobs, кожен зависає до таймауту, пробує знову й знову зависає. Тим часом інші jobs у черзі — emails, notifications, webhooks — стоять за стіною невдалих запитів. Коли ви прокидаєтеся, система вже годинами працює вхолосту.
Про це важко подумати, поки не станеться з вами.
У відео я збираю реальний додаток на Laravel з Horizon і Redis, відправляю тисячі payment jobs разом із email confirmations, а потім вимикаю симульований Stripe endpoint, щоб показати, що відбувається. Спойлер: негарно. Workers накопичуються, логіка retry лише погіршує ситуацію, і черга стає непридатною.
Потім я вирішую проблему за допомогою Fuse for Laravel — пакета circuit breaker, який я написав і представив на Laracon India 2026. Ідея проста: після кількох таймаутів circuit відкривається й jobs припиняють бити по мертвому API. Вони відкладаються замість того, щоб фейлитись, тож дані не губляться. Інші jobs працюють нормально, бо workers не витрачаються на запити, які ніколи не вдасться виконати. А коли Stripe повертається — Fuse автоматично виявляє це й відновлює обробку.
Один middleware, три властивості — і ваша черга лікується сама. Ніякого ручного втручання, ніяких сповіщень о 2-й ночі, ніяких втрачених jobs.
Я також показую, як збудувати сторінку статусу в реальному часі, щоб бачити стан circuit, відсоток успішних операцій і процес відновлення наживо.