Паттерн «Saga» в бронировании отелей · Антон Цитульский

  Рет қаралды 3,430

Systems.Education

Systems.Education

Күн бұрын

Пікірлер: 11
@SystemEducation
@SystemEducation Жыл бұрын
Курсы для системных аналитиков ssa.io/5oWIw6 Работа с очередями в RabbitMQ и Apache Kafka ssa.io/maMkdq Основы ООП и разработка UML-моделей ssa.io/SnGkCQ
@nikandrov
@nikandrov 2 күн бұрын
Слишком мало сказано про недостатки Saga, особенно про нюансы компенсаций - там очень непросто если детально посмотреть.
@VadimZhivotovsky
@VadimZhivotovsky 9 ай бұрын
Добрый день. Видео оставило много вопросов. 02:54 БД вынесена за пределы системы. БД не входит в систему? В чём смысл такой архитектуры? 06:08 Значит, у вас физический пользователь (Guest) напрямую взаимодействует с балансером? Я понимаю, что докладчик - бэкендер, но если вы рисуете систему, то давайте без таких странных упрощений. 11:47 Так, не понял. Только что был длинный рассказ про масштабирование системы, и вот мы пришли к блоку "Масштабирование"... Тогда что было до этого? 11:49 Скажите, а всё предыдущее, судя по вашему кубу, было монолитом? Геораспределённая (вынесеная за пределы системы!) БД, инстансы - это всё монолит? 13:18 Здесь впору задать загадку - найди третье лишнее в названиях микросервисов. Нарушено единообразие нейминга одинаковых сущностей 14:38 Согласен с предыдущим оратором. Я не разработчик, и очень плохо понял этот слайд. Сбегал к ИИ, стало гораздо понятнее (например, poe.com/s/f1aJoqCAuC71HmGlCv1x) 17:58 Насколько вижу, в этой логике есть аж четыре узла, где, случись ошибка, приложение уйдёт в вечный цикл. 19:33 Значит, пользователь и с API напрямую работает. Можно поподробнее про эту технологию? 29:50 Пользователь забронировал номер. Все транзакции в системе по бронированию прошли - сущность "заказ" создан. Теперь пользователь отменяет заказ. И вы говорите, что тут включается паттерн Saga. Вы точно уверены, что хотите (и сможете) отменить прошедшие транзакции в системе? Мне кажется, вы не понимаете границы действия паттерна. Заказ - это одна бизнес-операция. Отмена - это совершенно другая бизнес-операция. Нельзя отменить уже выполненную бизнес-операцию, можно лишь выполнить другую бизнес-операцию для возврата объектов (и то далеко не всех) в нужное состояние. Если это непонятно на уровне архитектуры системы, то страшно представить, что вы там понаотменяете.
@petushkovandrey1094
@petushkovandrey1094 Жыл бұрын
Извините, но я так и не понял, что из себя представляет паттерн «Сага». Где (в чем происходит обособление/локализация/выделение уровня абстракции)? Роль это блока (до него (без него) и с ним).
@IceeSpirit
@IceeSpirit Жыл бұрын
Если судить по 17:20 то сага это частный случай acid.
@SystemEducation
@SystemEducation Жыл бұрын
Сага - это последовательность локальных операций (транзакций). Как правило, применяется сага в микросервисной архитектуре, когда у каждого микросервиса своя БД. Каждая локальная транзакция обновляет базу данных и публикует сообщение или событие для запуска следующей локальной транзакции в саге. Если локальная транзакция терпит неудачу из-за нарушения бизнес-правил и нужно её откатить назад, то сага выполняет серию компенсирующих транзакций, которые отменяют изменения, внесенные предыдущими локальными транзакциями. Можно сказать, что это способ обработки ошибок, не нарушающий консистентность данных. Есть разные сценарии обработки ошибок - Retry (повторная отправка), Circuit Breaker (при отказе или длительной недоступности другого сервиса) и др. В вебинаре был рассмотрен конкретный сценарий, где по мере роста и увеличения нагрузки на приложение рассматривалось применение саги .
@petushkovandrey1094
@petushkovandrey1094 Жыл бұрын
@@SystemEducation Если что-то выделяется, значит оно имеет границы. Значит есть момент до и после. Возможно я ошибаюсь, но я не увидел, что вот была система до добавления саги и она функционировала так-то и так-то и в ней была проблема. Вот сага, она состоит из того-то и того-то и выполняет такую-то функцию. Добавили сагу к существующей без неё системе и получили решение проблемы. Система с добавлением саги стала работать так-то. «Накладные расходы» такие-то.
@АртемАрте-г5х
@АртемАрте-г5х 3 ай бұрын
5 лет опыта на бэке это хороший джун, ну или средний мидл. Синьор это от 12-15 лет опыта минимум.
@alexeybreez9102
@alexeybreez9102 Ай бұрын
Чушь. Если сидишь и формы верстаешь 10 лет периодически почитывая книжки, то да, лет через 10 станешь синьором.
@Altru1stA
@Altru1stA Ай бұрын
@@alexeybreez9102 через 10 лет станешь сеньер верстальщиком форм
@tsttst3179
@tsttst3179 10 ай бұрын
Спасибо, полезный канал
Spongebob ate Patrick 😱 #meme #spongebob #gmod
00:15
Mr. LoLo
Рет қаралды 16 МЛН
Microservices with Databases can be challenging...
20:52
Software Developer Diaries
Рет қаралды 44 М.