Size: a a a

2021 January 11

AI

Alexis IV Mobius in pro.elixir
а, ну то есть стек роллбеков, понятно
источник

AI

Alexis IV Mobius in pro.elixir
а откуда название пошло?
источник

AB

Alex Bubnov in pro.elixir
да хз вообще
источник

LL

Lama Lover in pro.elixir
Alexis IV Mobius
а откуда название пошло?
В массы принёс microservices.io
А так, это чей-то вайтпейпер
источник

LL

Lama Lover in pro.elixir
Alexis IV Mobius
а, ну то есть стек роллбеков, понятно
Но вот в распределённой системе, сага работает так
Есть транзакция, которая должна выполниться на сервисах 1, 2, 3
Сервис 1 создаёт транзакцию, выполняет своё действие и отсылает её сервису 2
Тот выполняет действие и отсылает сервису 3

Роллбек в случае падения, или коммит в случае успеха идут по сервисам в обратном пути
Это духота
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Но вот в распределённой системе, сага работает так
Есть транзакция, которая должна выполниться на сервисах 1, 2, 3
Сервис 1 создаёт транзакцию, выполняет своё действие и отсылает её сервису 2
Тот выполняет действие и отсылает сервису 3

Роллбек в случае падения, или коммит в случае успеха идут по сервисам в обратном пути
Это духота
это один из вариантов
источник

AI

Alexis IV Mobius in pro.elixir
Lama Lover
Но вот в распределённой системе, сага работает так
Есть транзакция, которая должна выполниться на сервисах 1, 2, 3
Сервис 1 создаёт транзакцию, выполняет своё действие и отсылает её сервису 2
Тот выполняет действие и отсылает сервису 3

Роллбек в случае падения, или коммит в случае успеха идут по сервисам в обратном пути
Это духота
звучит тоже как неявный стек
источник

LL

Lama Lover in pro.elixir
Alexis IV Mobius
звучит тоже как неявный стек
Ну вот это духота, потому что
1) Не ясно куда можно прислать сообщение чтобы остановить транзакцию (а это полезная фича), нужно организовывать роутинг, что сложно, когда топология не full-mesh
2) Не ясно, что делать, если на обратном пути кто-то упал. Получается, что коммит в нескольких сервисах есть, а а нескольких его нет и быть не может
3) Очевидный дедлок транзакций при транзакции на одном бите при движении саги в разных направлениях (одна начинается на сервисе 1, а вторая начинается на сервисе 3), который тоже не ясно как решать
источник

AI

Alexis IV Mobius in pro.elixir
Lama Lover
Ну вот это духота, потому что
1) Не ясно куда можно прислать сообщение чтобы остановить транзакцию (а это полезная фича), нужно организовывать роутинг, что сложно, когда топология не full-mesh
2) Не ясно, что делать, если на обратном пути кто-то упал. Получается, что коммит в нескольких сервисах есть, а а нескольких его нет и быть не может
3) Очевидный дедлок транзакций при транзакции на одном бите при движении саги в разных направлениях (одна начинается на сервисе 1, а вторая начинается на сервисе 3), который тоже не ясно как решать
ну третье звучит скорее как плохой дизайн чем как что-либо ещё
источник

AI

Alexis IV Mobius in pro.elixir
первое и второе - ну в этом минусы подхода, да
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Ну вот это духота, потому что
1) Не ясно куда можно прислать сообщение чтобы остановить транзакцию (а это полезная фича), нужно организовывать роутинг, что сложно, когда топология не full-mesh
2) Не ясно, что делать, если на обратном пути кто-то упал. Получается, что коммит в нескольких сервисах есть, а а нескольких его нет и быть не может
3) Очевидный дедлок транзакций при транзакции на одном бите при движении саги в разных направлениях (одна начинается на сервисе 1, а вторая начинается на сервисе 3), который тоже не ясно как решать
саги без координатора - очень сомнительное решение
мы делали что-то подобное, хотя чуть менее кошмарное, и нам не понравилось
источник

AI

Alexis IV Mobius in pro.elixir
Alex Bubnov
саги без координатора - очень сомнительное решение
мы делали что-то подобное, хотя чуть менее кошмарное, и нам не понравилось
о господи, у меня определённые Флешбеки неожиданно
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
саги без координатора - очень сомнительное решение
мы делали что-то подобное, хотя чуть менее кошмарное, и нам не понравилось
Ну вот сага с координатором, это 2PC, где просто определён порядок коммита и исполнения
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Ну вот сага с координатором, это 2PC, где просто определён порядок коммита и исполнения
нет, семантика партисипантов разная.
источник

LL

Lama Lover in pro.elixir
Alex Bubnov
нет, семантика партисипантов разная.
Ну, только если это
источник

A

Aldar in pro.elixir
Lama Lover
Ну вот сага с координатором, это 2PC, где просто определён порядок коммита и исполнения
Если координатор упадёт, то ...
источник

AB

Alex Bubnov in pro.elixir
Aldar
Если координатор упадёт, то ...
но если его нет, всё становится только хуже
источник

AB

Alex Bubnov in pro.elixir
потому что написать координатор это боль на раз, а жить без него - постоянная
источник

LL

Lama Lover in pro.elixir
Aldar
Если координатор упадёт, то ...
Если упадёт во время коммита, то локальное решение

Если вообще есть вероятность падения координатора, то лучше бы сводить задачу к какому-нибудь консенсусу. В том же Raft есть неявный координатор
источник

AI

Alexis IV Mobius in pro.elixir
Aldar
Если координатор упадёт, то ...
если координатор упадёт то всему пизда
но без координатора если что угодно упадёт, то всему пизда
источник