Slide 1

Slide 1 text

Недописанная Кафкой сага

Slide 2

Slide 2 text

Вступление Меня зовут Алексей. Я – Team Lead команды разработки МП Токио Сити ● Более 4 лет коммерческой разработки на Python ● 3 года опыта в FoodTech ● 2 года код ревью на курсе Middle Python Dev. Я.Практикум ● 1 год опыта в позиции Team lead

Slide 3

Slide 3 text

Студия разработки Блиц Продуктовая IT-компания с 2005 г. Foodtech WEB-Разработка: e-commerce, web-сервисы, корпоративные порталы Автоматизация ресторана: внедрение r-keeper, iiko WHITE-LABEL: готовое приложение без разработки Техническая поддержка и администрирование сервисов 1С Разработка и поддержка Telegram боты: создание чат ботов RPA: разработка и внедрение программных роботов Внедрение CRM-систем: разработка, развитие и интеграции Мобильная разработка: приложения под ключ 80 ресторанов 40 dark-kitchen работают с нашими продуктами

Slide 4

Slide 4 text

О чём доклад? - Об исследовании проблемы обеспечения транзакции в распределенной системе ● И, собственно, почему Кафка не дописал свою Сагу… - О реализации и сложностях в процессе приготовления паттерна - О первом погружение в паттерн Saga

Slide 5

Slide 5 text

В начале было слово… И этим словом было VCard

Slide 6

Slide 6 text

VCard – сервис для предоставления преимуществ программ лояльности в ресторанах Возможности: - Копить и тратить бонусы - Скидки в праздники - Скидки на акционные позиции - Отказ от пластика Виртуальная карта

Slide 7

Slide 7 text

Виртуальная карта

Slide 8

Slide 8 text

Архитектурная диаграмма Компоненты: - Бекенд МП - Справочник Ресторанов - CRM System - Брокер сообщений - XML-Daemon - RKeeper

Slide 9

Slide 9 text

Там, где появляется но...

Slide 10

Slide 10 text

- Идемпотентность при слабой сети. И даже не одно лишь но… Нарушена консистентность системы - Блокировка заказа официантом. - Задержка перерасчета при нагрузке.

Slide 11

Slide 11 text

Там, где умирает консистентность Успешный Сценарий Сценарий с ошибкой

Slide 12

Slide 12 text

Saga Introduction

Slide 13

Slide 13 text

Saga.Mode Хореография Оркестровка

Slide 14

Slide 14 text

Saga Implementation

Slide 15

Slide 15 text

Saga.Events В нашей системе используется три основные Саги: - Saga.Commit - Saga.Cancel - Saga.Subscribe

Slide 16

Slide 16 text

Saga.Broken

Slide 17

Slide 17 text

Saga.Handle Group Event - Сложнее всего в транзакции управлять обработкой всех ответов от оборудования кассы. - Был реализован Handle Group Event

Slide 18

Slide 18 text

Saga Summary

Slide 19

Slide 19 text

Saga.Contract

Slide 20

Slide 20 text

Saga Release

Slide 21

Slide 21 text

Saga.Circular

Slide 22

Slide 22 text

Итоги: - Качественное повышение отказоустойчивости системы - Снижение количества обращений на 94.20% - Довольные клиенты, которые любят возвращаться в наши рестораны

Slide 23

Slide 23 text

Кафка не дописал свою Сагу?

Slide 24

Slide 24 text

Не вся Сага в Кафке

Slide 25

Slide 25 text

Спасибо за внимание!

Slide 26

Slide 26 text

Начинаем Блиц В чем сила?