212 похожих чатов

Насчёт атомарных транзакций )) Есть какой-то фреймворк надежный чтобы SAGA

проводить между микросервисами /good practices ?

Есть обеспокоенность ,что в процессе между ивентами в шину,в какой-то локальной транзакций будет считано невалидное значение

Проблема в процессе формирования SAGA

В первом микросервисе локальная транзакция вставила значение закомитилилась ,другой запрос считал это значение
Но в цппочке SAGA какой-то микросервис кинул ивент отката транзакций и пошел процесс комписирующих транзакций (запуск rollback для локальных)

Как быть с ситуацией когда уже считалось значение другим реквестом , а потом пришлось откатить назад ?

К примеру 2pc там в этом плане идет полная блокировка и такого не возникает

21 ответов

61 просмотр

От Авито был хороший доклад на эту тему, про оркестрируемую сагу. Там даже расписали из каких компонентов должен такой сервис состоять. Писать только руками его, но он не большой сам по себе

опыту авито в вопросах саг я бы не доверял ) а "писать руками" — вообще совет вредный, на самом деле

Александр Ерин
Почему?

почему что ? не доверять авито или не писать руками ?

Denial ...
А ссылочки не найдется?

https://www.youtube.com/watch?v=OOP_4kuzaWI в формате видео https://habr.com/ru/companies/oleg-bunin/articles/418235/ в виде статьи И по хареографии мне этот видос нравится от них https://www.youtube.com/watch?v=6HvSpqBc8fA

ну вот я почему и говорю, что немножко дичь. причем начинается она уже с 1го доклада > сервис саг только 1 > масштабируем за счет шардирования баз > пишем сами > какие-то скип локед > сага должна быть асинхронной > какие-то непонятные чекеры, запускаемые спустя 12 часов жуть просто (и это только первые 15мин доклада)

Arthur Irgashev
ну вот я почему и говорю, что немножко дичь. приче...

Честно даже не то что бы страшно звучит для 19-ого года

Sergey P
Честно даже не то что бы страшно звучит для 19-ого...

Ну, для 18-19, может быть, и да. Но референсят-то уже почти в 2025 )

Dmitriy L.
а 24 куда делся?)

А, сорри, я из будущего :)

Arthur Irgashev
Ну, для 18-19, может быть, и да. Но референсят-то ...

я б не удивилась. если бы узнала, что сейчас 25.

Arthur Irgashev
Ну, для 18-19, может быть, и да. Но референсят-то ...

Я в принципе даже лайк на видео поставлю, если осветишь как это делают в 2024 :)

Александр Ерин
https://www.youtube.com/watch?v=OOP_4kuzaWI в форм...

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

Artur
посмотрел я этот видос и не понял зачем такой овер...

Ты просто щас сказал, что хореография лучше оркестрации.

Arthur Irgashev
нет оверхеда никакого

как же нет? если у тебя отдельный сервис саг, считай что доп точка отказа

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта