Асинхронная архитектура
Четырёхнедельный онлайн-курс о том, как строить распределённые сервисы. Мы простым языком расскажем о DDD и об архитектуре больших систем. По итогам курса вы спроектируете распределённую систему, которую добавите в портфолио.
Контент курса обкатали
на 1,5К+
студентах
6-й
поток
Компании, которые уходят от монолитной архитектуры к сервисной и микросервисной, часто терпят поражение — получают такой же монолит, только разбитый по нескольким репозиториям.
Мы расскажем, как избежать этих проблем — правильно разнести функциональность по сервисам и выбрать подходящий формат асинхронной коммуникации. Вы познакомитесь с Kafka, Event Streaming и понятием Schema Registry. Кроме того, мы упомянем о CQRS и SAGA.
О чём курс
Сделаем полноценный проект — систему для крупной компании на event-driven-архитектуре по принципам DDD
Мы не только нарисуем кучу квадратиков в LucidChart, но ещё и напишем код — спроектируем и запилим систему инвентаризации оборудования для крупной компании. Авторы будут писать на Ruby, вы — на чём угодно.
Подойдёт всем, кто интересуется архитектурой ПО
Достаточно читать на любом языке программирования, знать хотя бы один популярный MVC-фреймворк и понимать, для чего нужны RabbitMQ/Kafka.
Типичные сценарии, когда нужен курс

Понятные видеоуроки
Q&A
Встречи — разборы домашек с автором курса. Запись будет
Практика — полноценный учебный проект, который будем есть по кусочкам
Сессия
9 уроков по 30-45 минут. В каждом описаны подходы, концепции и термины. Всё самое важное, с понятными примерами, шутками и попугаями
Списки дополнительных материалов для погружения вглубь. Хватит на год вперед
Личные и командные консультации
на некоторых тарифах
Что на курсе
Чат учеников
в телеграме
2 факультатива
про биллинг и модели данных в записи
Вы получите учебный проект для портфолио и понимание, как применить знания в работе*
*При условии выполнения всех домашек
Программа курса
Мы рассчитываем, что примерная нагрузка
10
часов
в неделю
1-2 часа
на просмотр
видеоуроков
3-5
на домашку
2 часа на Q&A и разбор домашки в тарифах с ОС
1+ час
для минимального погружения и год для детального изучения
Урок 1
Разбираем, в чём разница между распределённым монолитом и асинхронной системой.
Вводная
Расскажем, что ждёт на курсе, разберём, что такое асинхронная архитектура, почему она появилась, какие проблемы решает и в каком случае её стоит использовать.

На выходе получим понимание термина «асинхронная архитектура» и где её лучше применять, определим начальную точку и путь, куда хотим прийти.
По 2 урока
в неделю
со старта обучения
Встреча-знакомство
15 февраля в 15:00 мск

Только для тарифов с обратной связью
Урок 2
Переводим язык бизнеса в процессы и модель данных
Урок 3
Переводим процессы и модель данных в сервисы и коммуникации
Проектирование
Изучим 6 шагов для проектирования системы — начиная от анализа бизнес-требований и заканчивая связями между компонентами
в системе. Разберёмся, как получить данные, необходимые для работы бизнес-логики, из другого сервиса или части.

На выходе получим полностью спроектированную систему, которая отвечает на все вопросы имплементации: разберёмся, какие данные нужны бизнесу, какие команды он хочет выполнять с ES like — подхода, а также составим модель данных, поймём, почему UML/ERD может быть избыточен.


+ Созвон
для разбора домашки
Урок 4
Первый сервис — authn в распределённых системах, CUD и Business events на практике

Урок 5
Основной сервис инвентаризации, выбор message broker
Имплементация
Выберем и сделаем механизм аутентификации. Отправим первое асинхронное сообщение, разберёмся в разнице между Distributed message Queue и Distributed log. А так как мы будем использовать kafka — разберёмся, как она работает на базовом уровне.

На выходе получим первые два сервиса из проекта системы:
SSO и первый сервис для бизнеса. А также свяжем их асинхронной коммуникацией для корректной работы всей системы.

+ Созвон
для разбора домашки
Дорабатываем систему
Спроектируем логику для задачи, к которой система не приспособлена, — разберёмся с эволюцией событий и поймём, в каких случаях надо соблюдать прямую, а в каких — обратную совместимость.

Сделаем, чтобы с нашей системой можно было спокойно спать ночью: разберёмся в тестировании, чтобы новые фичи ничего не ломали, и придумаем, как обеспечить устойчивость системы и обрабатывать невалидные или failure-события.

На выходе разработаем план, что делать, когда изменение данных в событии потенциально может развалить всю систему. Также определим, как лучше тестировать асинхронную систему в каждом из случаев и что делать с событиями, которые сломались на уровне бизнес-логики или которые надо заретраить.

Урок 7
После запуска: тестирование, ретраи и обработка ошибочных событий
Урок 6
Добавляем незапланированный сервис: эволюция событий в системе
+ Созвон
для разбора домашки
Личный опыт и выводы
Подведём итоги курса: поговорим о проблемах, которые Антон наблюдал в системах, мигрирующих на асинхронную коммуникацию. Это нейминг, проектирование, техническая реализация. Затронем data management patterns, чтобы показать, что это отдельные концепции, которые могут использоваться в асинхронной архитектуре, но не обязательно должны быть в ней. Обсудим, как практиковаться после курса и где искать идеи и места для новых проектов.

На выходе: составим список подводных камней и советов, которые помогут избежать проблем. Получим цельную картину и шаги/темы для дальнейшего изучения.
Урок 9
Итоги и что делать дальше
Урок 8
Опыт Антона: 4 асинхронные системы из реальной жизни
Q&A
Сессия
21 марта
в 15:00 мск

Только для тарифов с обратной связью
Конспект
самого главного и презентация
Неделя обучения и содержание
Расписание
Урок 1
Домашнее задание для вашего большого кейса
Список дополнительной литературы
Каждый урок — это 30-45-минутное видео, на котором Антон объясняет теорию.
Урок 2
Пример одной недели обучения
Каждую ссылку расшифровываем, прописываем чем
будет полезна. Если это книга — указываем даже конкретную главу. Обьем большой — хватит на год вперед.
Тарифы
Если возникли вопросы или хотите оплатить от юрлица — напишите на  [email protected], отвечаем в течение суток.
Мы подключили сервис «Тинькофф.Долями». От рассрочки отличается тем, что нужно заплатить первый взнос в размере 25% от суммы. Остальная сумма делится на четыре равные части и выплачивается раз в две недели. Без договора и одобрений, проценты за услугу платим мы. Для вас бесплатно.
Сервис будет работать только для российских карт.
В одной команде не более 3 человек

Продано

Продано
Осталось
2 места

Продано
За курс можно получить налоговый вычет 13%
За курс можно получить налоговый вычет 13%
За курс можно получить налоговый вычет 13%
За курс можно получить налоговый вычет 13%
undefined
Согласовываете
Согласовываете с руководителем обучение или знакомите нас с руководителем, чтобы мы вам в этом помогли.
Для юрлиц стоимость немного выше: «Я сам» — 22 000₽/$275, «В тусовке» — 37 000₽/€411, «VIP» — 57 000₽/€633, «Командный VIP» —
250 000₽/€2778. Это связано с необходимостью дополнительного документооборота.
Обмениваемся документами
Мы выставляем счёт и отправляем приглашение для обмена документами в Диадок.
Присылаете реквизиты
Ваша компания оплачивает, а мы выдаём вам доступ к курсу.
Присылаете нам на почту реквизиты компании. Обычно их взять можно у HR, на сайте компании в разделе «Контакты» или написав в бухгалтерию. Если ваша бухгалтерия просит какой-то набор документов — приложите список, чтобы мы сразу прикрепили.
Даём доступ
По окончании присылаем закрывающие документы в Диадоке, а ваша бухгалтерия подписывает.
Хочу учиться
за счёт компании
1
2
3
4
Как пройдёт обучение
Понедельник
Вторник
Урок 2
Личные консультации
Дедлайн по сдаче домашки
1-я неделя
2-я неделя
На почту вам приходит письмо с уроком недели. В нем ссылка на 20-30-минутное видео, которое знакомит вас с темой. Там же конспект самого главного, домашка и список дополнительных материалов. На выполнение домашки вам понадобится не более часа.
undefined
Урок 3
Разбор домашки
в 15:00 мск
Живой разбор домашек тарифов «В тусовке» и «Всё включено». Проводим в 19:00 по мск в зуме. Делаем запись встречи, чтобы можно было посмотреть потом. На встрече Антон с Федей комментируют домашку. Вы сможете задавать вопросы по ходу или отвечать на уточнения.
Дедлайн по проверке домашек для тарифа «Всё включено». Обратную связь по домашке присылаем в среду до конца дня.
Воскресенье
В тарифе «Всё включено» проходят личные консультации с Антоном длительностью 45 минут. Проходят в зуме.
В последнюю пятницу курса проводим Q&A-сессию в зуме по оставшимся вопросам. Длительность сессии — два часа (в тарифах, где предусмотрена эта опция).
Q&A-сессия
Дополнительно в тусовке и VIP
Урок 4
На почту вам приходит письмо с первым уроком недели. В нем ссылка на 20-30-минутное видео, которое знакомит вас с темой. Там же конспект самого главного, домашка и список дополнительных материалов. На выполнение домашки вам понадобится не более часа.
На почту вы получаете письмо со вторым уроком, по аналогии со вторником. И так далее в течение четырёх недель.
Урок 5
Дедлайн по сдаче домашки
Дедлайн по проверке домашек для тарифа «Всё включено». Обратную связь по домашке присылаем в среду до конца дня.
Встреча-знакомство

В тарифе «Всё включено» проходят личные консультации с Антоном длительностью 45 минут. Проходят в зуме.
Комьюнити Школы
По окончании курса добавим вас в наше
Все выпускники собираются в чате, где помогают друг другу — от бытовых советов по релокации до советов по выбору стека. Сейчас в чате 8 топиков и почти 850 активных участников.
Сертификат
По окончании курса выдадим электронный сертификат тем, кто сдал вовремя все домашки. Мы делаем сертификаты особенными. Чтобы хотелось похвастаться.
Cертификат на русском и английском языках
Авторы
Фёдор Борщёв и Антон Давыдов.
Больше 20 лет опыта на двоих
Антон — независимый solution architector и разработчик, core contributer Hanami и Dry-rb. Раньше работал backend-архитектором в Toptal.com, сейчас помогает iGoods, 3commas и другим компаниям перейти на сервисную архитектуру и настроить интеграции. В курсе отвечает за программу и проверку ДЗ. Подробнее
Федя — лайвкодер и CTO, в пандемию консультировал «Вкусвилл» и iGoods по поводу производительности бекенда. В курсе отвечает за работу с бизнесом — сбор требований и демонстрацию результатов. Подробнее
Отзывы выпускников
Александр Иванов
Курс очень понравился! Позволил структурировать и актуализировать знания в сфере асинхронных коммуникаций. Уже после первой недели начал применять полученные знания в работе! У Антона круто получилось донести мысли и идеи, которые витали у меня уже давно, но теперь наконец сформировались и закрепились :) Особенно запомнилось — «Не стоит объединять два различных бизнесовых шага в один, только потому что технически они очень похожи» 💪 Теперь постепенно буду привносить и адаптировать идеи на текущей работе, это очень вдохновляет и приносит удовлетворение)
Алексей Исмаилов
Спасибо за курс! Одним из результатов обучения, наблюдаемых уже сейчас, стало понимание, что очень многие фокусируются на микросервисах, не видя леса за деревьями, в то время как мы в команде, например, резонно и осознанно решили в одном месте писать монолит, понимая всю ситуацию, я считаю, благодаря курсу (в команде я не один его проходил). После учёбы остался некоторый «голод», и я думаю, это и есть главное моё достижение, ещё полгода-год я буду лазить, пересматривать, изучать доп. материалы, чтобы всё это улеглось, потому что главное, что со мной произошло, — я увидел глубину своего непонимания в этой части, выходит, курс открыл для меня новую глубину! Вместе с тем я стал гораздо лучше понимать, что стоит не только за асинхронной архитектурой, но за архитектурой в принципе, за это огромное спасибо) Ушёл постигать и углублять знания в «Анализе систем».
Мария Крол
Курсы у вас огонь, конечно. Работаю архитектором в телекоммуникационной компании. Продукт большой, много легаси, и главная особенность — плагинная архитектура и очень скудная документация. Предстояло делать массивный рефакторинг, и я поняла, что понятия не имею, с какой стороны к этому подойти.

Пошла на курс потому, что помимо документации и прочего можно было посмотреть на реализацию микросервисного подхода вживую и понять, надо нам это или нет. На выходе получила понимание того, почему наша документация «не читается» и почему схемы приходится по сто раз пережёвывать и разбирать. Начала приводить в порядок документацию и от неё занялась планированием рефакторинга с наиболее критичных мест.

Также курс хорошо даёт понять, в каких случаях НЕ стоит применять микросервисы, и позволяет избежать больших затрат и косяков в реальных продуктах. Благодаря тому что в курсе приходится пройти весь цикл самостоятельно, получила более чёткое понимание, где заканчивается архитектура и начинается дизайн. Безусловно, курс крутейший и подойдёт всем, каждый сможет сделать проект на своём уровне.

Мне кажется, полезнее всего идти в тариф с чатом. Хотя проект и индивидуальный, в чате можно найти ответы почти на все свои вопросы, увидеть горы интересных идей и посмотреть со стороны на свои просчёты. А ещё это помогает не слететь с дистанции, потому что там видно, как непросто даётся курс каждому, что делает его ещё более ценным.
Андрей Болдырев
Шикарный курс🏆 Тщательно выверенный контент и захватывающий домашний проект. Ничего лишнего. Огромное количество материалов и ссылок на годную информацию прилагается после каждого урока.

Отдельное спасибо хочется сказать за знакомство с Event Storming — это шикарный инструмент❤️

Могу смело порекомендовать этот курс, если вы хотите погрузиться в разработку распределённых систем с нуля или узнать, как ещё их можно готовить. Вы получите бесценный джедайский набор лучших практик💯
Никита Мязин
Про школу и курсы узнал случайно от коллеги. Поначалу немного скептически отнёсся, но потом посмотрел первый урок и решил попробовать, не пожалел ни о чём.

Самая клёвая часть в курсах (проходил асинхронную архитектуру и анализ систем) не только в самом материале, но ещё и в возможности пообщаться с людьми с разным опытом, обсудить вопросы. Антон всегда приходил на помощь и до самого конца всё объяснял. Ну и, конечно, топовые домашние задания, благодаря которым можно решить вечную проблему того, что ты не можешь делать что-то на работе без опыта, а опыта нет, пока не начнёшь работать.

Очень много всего пригодилось на работе. Асинхронную архитектуру проходили с коллегой. Мы, в общем-то, подозревали, что у нас что-то не так, но чётко сформулировать не могли. А уже после курса взглянули на нашу систему на работе, обсудили, что не так и что будем делать для исправления. Ну и в целом стал совсем иначе смотреть на задачи, и особенно когда встают вопросы, выносить ли это в отдельный микросервис. Рекомендую!
Александр Верхогляд
Курс помог систематизировать уже имеющиеся знания по архитектуре и дизайну систем, а также пополнить багаж знаний и опыта по организации взаимодействия элементов в микросервисной архитектуре. Я ознакомился с техниками и отработал на практике приёмы DDD, анализа требований заказчика, разбиение архитектуры на подсистемы. На работе знания из курса подстегнули к улучшению архитектуры и разделению подсистем. А ещё во время обучения классно провёл время в кругу коллег и единомышленников.
Павел Щегельский
Мне всегда интересны новые технологии и новые методы в мире ИТ, а самое важное — это практика. Данный курс закрыл для меня все эти пункты.

Перечислю главные для себя вещи, которые я познал в течение курса:
  1. Я много читал о Event Storming, но мне так и не удалось его попробовать. В ходе курса я смог попробовать и прочувствовать, почему это так важно и как это может быть полезно при анализе бизнес-требований. Я обычно следую пословице «Семь раз отмерь, один раз отрежь». ES — это потрясающий инструмент, который может легко помочь вам понять домены, зависимости, то, как система может работать и каков будет результат.

  2. Стал лучше понимать проблемы, с которыми можно столкнуться при построении асинхронной архитектуры, и то, как не оказаться в распределённом монолите.

  3. Важным компонентом при построении асинхронной архитектуры является MQ. В рамках практики сознательно была выбрана Kafka. Через практику я поближе познакомился с Kafka и различными шаблонами, которые помогают решать проблемы обмена сообщениями.
  4. Удалось поближе познакомиться с фреймворком Spring при реализации домашних заданий.

Список можно продолжать ещё долго, и это займёт время. Единственное — хочу сказать, что ни капельки не жалею о потраченном времени. Я очень доволен результатом и Антоном как экспертом.
Артем Лебаков

Все понравилось и прошло по ожиданиям. Хоть я и не выполнил всю домашку, как от себя и ожидал, но вынес много полезного:

  1. Я сам автоматизатор и не касался разработки монолитов, не говоря о микросервисах. Однако при разработке автотестов и в целом при работе курс добавил осознанности и идей в подходах. Все-таки ту же связность можно не только в микросервисах уменьшать, а где угодно практически.
  2. Сам вел несколько курсов, но по автоматизации. Этот курс очень хороший, мое ЧСВ было сломлено и честно признал для себя, я давал материал хуже. Организацию на курсе тоже не такую поддерживал, снимаю шляпу. Поставил себе зарубки и если доведется вести еще курсы, то буду активно ваши подходы использовать тоже =)
  3. Ну и конечно приятно, когда курс оставляет после себя не пустое место, а пласт материала для дальнейшего изучения.

Андрей Аленин
На мой взгляд, самые полезные составляющие курса это:

  1. Сверх-актуальность того, о чем рассказывает Антон и то, что вы будете применять на практике по ходу курса. А потом устроитесь на работу и там для вас эти технологии и подходы не станут каким-то сюрпризом. А вполне вероятно именно вы будете их внедрять, так как будете обладать полученным уникальным опытом работы с современными технологиями.

  2. Практическая часть — отличный пример домашнего задания, включающий различные условия, выполнение которых позволяет вам опробовать технологии в prod-like режиме. Это еще один шаг, который готовит вас к реальной работе и реальным сложностям, периодически возникающих при разработке и поддержке современных ИТ-проектов.

  3. Комплексное решение, в результате которого вы получаете рабочую систему (если постараетесь конечно), включающий взаимосвязи между подсистемами. То есть получите те навыки, которые позволят смотреть более широким взглядом на сложные системы.

Максим Масарновский
Java Developer, Andersen
Получил то, что хотел получить, — понимание того, как работает асинхронная система, как её проектировать, ошибки и моменты, которые нужно учесть.

Было примерное понимание того, как работают микросервисы, в процессе понял, что представление было в формате антипаттернов, узнал про архитектуру микросервисных систем, работу с Кафкой.

Рекомендую разработчикам, которые планируют разрабатывать микросервисы. И для расширения кругозора, тема горячая, наверняка придется столкнуться когда-нибудь. Уровень не ниже мидла.
Данила Червонный
Архитектор, Skillaz
Больше всего понравился разбор домашек. Очень подробно и классно. Также сама домашка. Пусть сыровата, но очень хорошо позволяет погрузиться в контекст разработки асинхронных распределённых систем. Прям супер.

Узнал все что нужно для разработки распределенных систем и даже больше. Даже немного коснулись внутреннего устройства кода и разделения команд\запросов. Рекомендую всем, кто заинтересован научиться разрабатывать асинхронные распределенные системы.

Что стоит улучшить? Домашку. Улучшайте домашку. Она привносит огромный пласт опыта в голову разработчика, который её выполняет. Считаю, что это прям первый приоритет. Она и так в курсе была хороша, но, как мы знаем, всегда можно лучше =)
Станислав Болсун
Software engineer, Arrival
Курс понравился, получилось даже лучше, чем я думал до начала. Очень понравилась первая часть, где было проектирование «на бумаге», — очень важная часть, и многому научился. По чату было видно, что для многих ДЗ по авторизации было выбивающим из потока, а так всё супер и я рад, что прошёл курс со сделанным ДЗ.

После прохождения курса архитектуры понял, что меня это очень цепляет и хочу сильно развиваться в этом направлении.
Марк
Понравилось прям всё-всё-всё! Отдельно хочу отметить количество референсов + подачу материала.

Было: не смотрел на микросервисы как на систему, в которой каждая ступень критически важна. Стало: весь материал курса лёг очень правильно. Теперь стало намного легче проектировать сложные системы и коммуникации, разбивать требования бизнеса на понятные абстракции, понимать контекст — саги, бизнес-транзакции, методики проектирования — и много ещё чего. Рекомендую всем, кто интересуется микросервисами чуть посерьёзнее, чем просто общаться по шине.
Антон Чучкалов
Software engineer
Было интересно, познавательно, а бизнес-требования из суровой жизни попугов повеселили.

Рад, что получилось на практике пощупать data streaming, RabbitMQ, полезно было спроектировать систему целиком перед началом реализации.

К сожалению, из-за нехватки времени (и, возможно, отчасти мотивации) не вышло попробовать использовать SchemaRegistry и прикрутить деплой через k8s. Кафку тоже было бы интересно использовать, но Кафку я видел на стримах Антона, и хотелось поработать с rabbitmq.

Не стал приводить систему к production-виду, т. к. это заняло бы неоправданно много времени и было бы скучно. Но при этом я доволен тем, как она работает сейчас.
Евгений Бурмакин
Wanna-build web developer

На курсе я понял, в чём проблема компаний, которые пытаются уйти от монолитной архитектуры к микросервисной и терпят поражение или не облегчают себе этим переходом жизнь (потому что получается тот же монолит, только распределённый, и его ещё и сложнее тестировать). Закрыл для себя вопросы по обмену данными между сервисами и по определению источника истины.

Рекомендовал бы мидлам с несколькими годами опыта, когда чувствуется, что нужно прокачать архитектурные скиллы и не очень понятно, куда здесь двигаться. Джунам пока такое рано ещё, лишнее отвлечение.
Марина Белова
developer в servers.com
С помощью курса я подтянула теорию по асинхронной архитектуре, посмотрела, как вообще на практике это может быть написано. Как валидируют данные, их версии и вообще хранят контракты. Какие события бывают и как их можно обрабатывать. В каких случаях может пригодиться такая архитектура.

Рекомендовала бы мидлам, сеньорам и, как ни странно, наверное, продуктам было бы полезно послушать.
Дмитрий Матвеев
Evrone, Potok.Digital
В рамках конференции RubyRussia 2020 я посетил мастер-класс Антона Давыдова «Асинхронная архитектура». Самое важное, что я вынес с МК, — это разница между распределённым монолитом и правильной распределённой микросервисной системой — наличие шины данных и общение сервисов через неё.

Я рекомендую мастер-класс и в целом выступления (записи и стримы) Антона на тему микросервисной асинхронной архитектуры интернет-приложений и эвент-шторминга для веб-разработчиков и архитекторов. Ключевые идеи будут полезны для понимания проектным и продакт-менеджерам, работающим в IT.

Де-факто сейчас асинхронная микросервисная архитектура и распределённые приложения — индустриальный стандарт. И даже если у вас монолит или вам кажется, что у вас сервисы, вам будет полезно узнать, как вся эта машинерия может работать в асинхронном режиме.
Где работают ученики
Вопросы-ответы
Если вы не нашли ответа на свой вопрос — напишите нам на [email protected].
Ответим в течение 24 часов.
Участвовать в курсе «Асинхронная архитектура»
Нажимая на кнопку, вы даёте согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности
Другие курсы школы