[Slurm] Apache Kafka для разработчиков (Всеволод Севостьянов)

Интенсив уже прошел, цена за видеозапись интенсива!!!


Нельзя просто так взять... и не использовать Кафку!!!


Как проходит интенсив:
Щепотка теории
Встречаемся в течение 3х дней, смотрим живые трансляции и задаем вопросы гуру-спикерам по Kafka
Щедрая заправка
Обсуждаем Kafka с другими участниками интенсива в чате, поднимаем настроение шутками и соревнуемся в создании лучших мемов по теме интенсива
Много практики
После каждой темы выполняем практические задания на стендах в личном кабинете и закрепляем материал

Можно долго читать книги или статьи по Kafka, смотреть обучающие видео или изучать документацию. Потратить на это много времени и все равно не найти всей информации, чтобы стать мастером.
А мы подготовили интенсив, где ты за 3 дня начнешь разбираться в Kafka, как будто создал её сам.

Спойлер: в интенсиве будет про архитектуру, этого нигде нет.


Кому подойдет курс?
В 2022 году навыки работы с Apache Kafka требуются более чем для 3000 вакансий (*по данным hh.ru)

Системным администраторам
Для сисадминов у нас есть отдельный курс: Apache Kafka База (складчина на него)

Архитекторам
Kafka — решение многих архитектурных проблем. Подписка на события и надежная передача запросов между приложениями еще никогда не были такими простыми. После интенсива ты организуешь правильную event-driven архитектуру с помощью Kafka!

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


Бизнес-кейсы, которые будем решать:

Проблема #1. Периодически отваливается логистический шлюз, и пользователь получает ошибку при создании заказа в онлайн-магазине одежды. Расскажем, как отвязать логистический шлюз от создания заказа, чтобы они не были связаны напрямую.

Проблема #2. Сервисы обмениваются сообщениями о событиях напрямую, и иногда по вине сети они не доставляются и пропадают. Объясним, что сделать, чтобы ничего не терять.


Проблема #3. Пользователь создал заказ, а магазин отправил его в доставку, упаковал и отгрузил водителю. И только после этого онлайн-магазин узнал, что оплата не прошла. Научим, как совершать все действия в правильном порядке, чтобы заказ не высылался до подтверждения оплаты.


Рекомендованные программы и навыки:
Для прохождения интенсива тебе понадобится компьютер, на котором установлена и настроена среда разработки, git и docker. Желательно установить make.
Знание Java и/или Go стэка.

День 1 -
• 1. Введение

• 2. Определение терминов. Теория

Начнете безошибочно разбираться в терминологии
2.1. Нода, Датацентр, Кластер
2.2. ZooKeeper
2.3. Консумер, продусер, топик
2.4. Сообщение, ключ, значение
2.5. Партиции

• 3. Архитектура Кафка. Теория + практика

Научитесь писать простейшие клиенты, будете понимать внутреннюю архитектуру Кафки
3.1. Шардинг (партиционирование)
3.2. Репликация лидер-ведомый
3.3. Концепция указателей (смещений)
3.4. Буферная передача и задержки

• 4. Основы использования Кафка. Теория + практика

Научитесь работать со сложными протоколами и настроить приложение так, чтобы оно не развалилось в проде
4.1. Создание топиков
4.2. Сериализация сообщений
4.3. Настройки продюсера
4.4. Настройка консумера
4.5. Partition key: упорядочивание и чтение на клиенте

День 2 -

• 5. Алгоритмы на Kafka. Теория + практика

Научитесь строить архитектуру между микросервисами
5.1. Асинхронные сообщения
5.2. Подписка на события
5.3. Репликация в микросервисах

• 6. Транзакции с использованием Kafka. Теория + практика

Научитесь избегать распространенных проблем с данными при построении архитектуры
6.1. Only once и идемпотентность при записи в базу
6.2. Only once при копировании из топика в топик
6.3. Distributed transactions / Sagas

День 3 -

• 7. Событийно-ориентированная архитектура. Теория + практика

Начнете использовать все преимущества Kafka

7.1. Однонаправленная обработка событий
7.2. Вариант применения: event sourсing. Акторы
7.3. Работаем с индексом времени вставки
7.4. Расчет агрегатов на Kafka

• 8. Изнасилование Кафка (Kafka как база данных). Теория + практика

Поймете, как использовать Кафку в качестве СУБД и стоит ли это делать

8.1. Объединение старых значений ключа
8.2. Доступ к сообщениям в случайном порядке
8.3. Делаем fifo очередь
8.4. Очередь, отсортированная по времени получения aka шедуллер