Курс по Temporal в связке Laravel + RoadRunner 🎉

Полгода делал большой курс по Temporal и наконец закончил. Хочу поделиться с сообществом – тем более что весь проект построен на знакомом стеке: Laravel + RoadRunner + Temporal PHP SDK.
Получилось 18 видео, около 16 часов контента. Если считать всё «за кадром» – подготовку, записи и монтаж в свободное время — вышло примерно 133 часа работы, больше обычного рабочего месяца.
Про что курс и чем он отличается
Это не набор толко академических видео, а бизнес-история одного проекта. Мы шаг за шагом строим агрегатор доставки еды и на каждом уроке добавляем новую возможность Temporal — от первого workflow до production-настройки воркеров. Движемся от простого к сложному, всё привязано к реальной бизнес-логике, а не к абстрактным примерам.
Если коротко, после курса вы будете понимать:
- когда классические очереди (Redis, RabbitMQ) начинают мешать и что вместо них даёт durable execution;
- как устроены Workflow, Activity, сигналы, queries, таймеры и детерминизм в PHP SDK;
- как реализовать Saga-паттерн, версионирование и долгоживущие процессы;
- как всё это тестировать, наблюдать и готовить к production на RoadRunner.
Список уроков
Основы
- Temporal Введение — план курса, темы и бизнес-flow
- Зачем нужен Temporal? — почему очереди не подходят и что даёт durable execution
- Установка и настройка — Docker Compose, RoadRunner, PHP SDK и первый workflow
- Workflow, Activity и их Options — анатомия, детерминизм, сериализация данных
- Schedule Activity и Heartbeats — таймауты, Retry Policy, heartbeats, обработка cancel
Реактивность
- Signals — внешние события, их обработка и идемпотентность
- Timers and Timeouts — таймеры и awaitWithTimeout
- Queries — синхронное чтение состояния и best practices
Масштабирование логики
- Child Workflows — декомпозиция, parent-child связь и политики
- Async Activities — «параллельный» запуск, Promise::all и Promise::any
Надёжность
- Saga pattern — распределённые транзакции, компенсации, Choreography vs Orchestration
- Versioning — ошибка недетерминизма и getVersion
- Continue as new — долгоживущие workflow и лимиты Event History
Продвинутое и Production
- Schedules — аналог cron в Temporal
- Side Effects and Updates — детерминизм и сравнение Updates с Signals/Queries
- Testing — отладка, ускорение времени, replay-механизмы и их оптимизации
- Observability — логи, метрики, трейсинг и Search Attributes
- Worker Tuning — настройка воркеров PHP/Go SDK и Graceful Shutdown
Весь материал доступен плейлистом на YouTube. Исходный код каждого урока лежит на GitHub.
Что дальше
Материала по Temporal ещё много, и останавливаться я не планирую. Но думаю над форматом продолжения — что было бы полезнее сообществу: разборы реальных кейсов, глубокие технические дайвы во внутренности SDK или что-то ещё? Буду рад мнению в комментариях.
Если курс окажется полезным — заходите на YouTube и в телеграм, там я продолжаю писать про Temporal и смежные темы. Отдельно собрал подборку материалов: чаты, статьи и ресурсы по Temporal.
Буду благодарен за конструктивную критику и вопросы.