Aleksander
Быков
О, они расширились значит. Когда мы общались, там в основном был Максим и Самар вдвоем.. Но это было давно
Λ ll И K X
или камунду какую то
Aleksander
похоже на aws step functions
Так их делал тот-же человек))
Λ ll И K X
воркфлоу менджмент
Ilya
а at least once я выше написал как сделать. И Вагиф тоже
Короче я понял, что персистить плохо, надо колозить на сообщениях
Aleksander
Ayrat
Короче я понял, что персистить плохо, надо колозить на сообщениях
не, персисить не так плохо, но в акке решили не повторять очереди сообщений (попытки были)
Ilya
что быстрое? тебе надо в начале писать в хранилище, потом в мейлбокс класть (иначе проебёшь). притом не заканчивать отсылку сообщения сендеру пока мы не запишем в хранилище. Ты представляешь насколько всё стало херовее?
Но! Представь себе, что у тебя есть актор, который выполняет очень длительную работу. Тогда время на запись будет мало по сравнению с общей нагрузкой
Vagif
О, они расширились значит. Когда мы общались, там в основном был Максим и Самар вдвоем.. Но это было давно
Здесь Сергей пишет, как он к ним перешел https://docs.temporal.io/blog/sergey-why-i-joined-temporal/
Aleksander
мы Uber Cadence использовали для оркестрации и саг (это предшественник Temporal) - в принципе норм, хотя пару ног себе в процессе отстрелить успели
Λ ll И K X
https://jimmybogard.com/life-beyond-transactions-implementation-primer/
Ayrat
Но! Представь себе, что у тебя есть актор, который выполняет очень длительную работу. Тогда время на запись будет мало по сравнению с общей нагрузкой
ты берёшь очень-очень частный случай. Допустим что для него что-то сработает. Но делать надо для чуть более общего. И мы тут же повторяем кафку
Ilya
Ayrat
ну там репликации, комиты, брокеры, ретеншн - вот это всё
Ayrat
Ну это такое, всякие микросервисы, общающиеся через кафку - тоже плохая архитектура
хз, по-моему самое простое что можно придумать в огромном бизнесе
Ayrat
сильно развязывает руки для разработки несвязных компонент
Λ ll И K X
кмк делать надежные саги с фейловерами сложнее раз в 10
Ayrat
В волмарте вот всё на кафке, там трафик на брокерах - терабайты в секунду (не шутя). Встроить своё решение проще простого - выбери нужные топики с инфой, обработай, выстави свой топик.
Λ ll И K X
Вооот! А если просто хранить мейлбокс в кафке? Сразу
там эвентлог можно хранить но это другое другой конец так сказать
Ilya
это почему ?
Потому что там команды сохраняются
Ayrat
4кк мсж/сек на кафке ты не получишь
Λ ll И K X
Потому что там команды сохраняются
а что стримы отрезать нельзя?
Λ ll И K X
и как бы в чем экономия
Ayrat
Mark
выглядит как россия, к чему бы это
Λ ll И K X
Ayrat
на кафку лучше смотреть как на надёжный сетевой буфер между сервисами.
Ayrat
сервис наебнулся, rpc вызов никуда не делся
Ilya
не особо! но чувствую ты хочешь рассказать
Если бы можно было взаимодействовать через кафку между акторами, то ты бы мог писать новые сервисы просто как новые акторы
Ayrat
Если бы можно было взаимодействовать через кафку между акторами, то ты бы мог писать новые сервисы просто как новые акторы
и внезапно окажется что проще консольное приложение в куб пихнуть чем акку поднимать
Ilya
сервис наебнулся, rpc вызов никуда не делся
Согласен, разве такая фича не может быть востребована в акке?
Ayrat
но опять же акка уделает по скорости раз в 1000 кафкадрочеров
Ilya
но опять же акка уделает по скорости раз в 1000 кафкадрочеров
Некоторые акторы - не все. Ты бы мог переиспользовать часть акторов
Ayrat
Некоторые акторы - не все. Ты бы мог переиспользовать часть акторов
для этого надо знать детали имплементации мейлбокса - где он находится, в кафке, или в памяти. Как-то всё тупо становится
Ayrat
Короче, лично я, лично я, смысла не вижу в мейлбоксах дурабл. Но вижу смысл в из коробчном акноледж протоколе на персистент акторах для at-least-once доставки честной
Ayrat
Зачем? Контракт не меняется
да, а вот скорость на 3 порядка ниже, внезапный ботлнек
Ilya
Если у тебя реакция на тел очень быстрая, то смысла особого нет - но если это длительная операция - имеет смысл
Ayrat
А акка скалироваться не умеет пока ей не разрешишь
Λ ll И K X
Если бы можно было взаимодействовать через кафку между акторами, то ты бы мог писать новые сервисы просто как новые акторы
а чо нельзя разве сделать актор паблишер и актор сабскрайбер которые пишут/читают в/из стрим
Λ ll И K X
а далее уже обратно в акторном кластере коммуникация
Λ ll И K X
только зачем яхз
Ayrat
а чо нельзя разве сделать актор паблишер и актор сабскрайбер которые пишут/читают в/из стрим
можно. Так делают. Но Илья это предлагает делать на всех межакторных взаимодействиях
Ayrat
чтобы сохранять мейлбокс (ЗАЧЕМ)
Ayrat
если можно повторить мейлбокс
Ayrat
то есть перепослать сообщения, на которые не пришёл акноледж
Ayrat
Короче, лично я, лично я, смысла не вижу в мейлбоксах дурабл. Но вижу смысл в из коробчном акноледж протоколе на персистент акторах для at-least-once доставки честной
Ilya
А акка скалироваться не умеет пока ей не разрешишь
Наверное в этом и дело, я предполагаю, что у тебя есть большой кластер
Ayrat
Ну не, для акки как раз нативным является евентсорсинг
Ayrat
тут короче два подхода - стейтлесс обработчик, стейтфул буферы между ними (сервисы с кафкой посередине) или стейтфул обработчик и стейтлесс буфера (евентсорс актор, который заполняет буфер на рекавери)
Ayrat
и то, и другое может давать at least once
Ayrat
Второй вариант требует больше приседаний
ну не, страничка кода. И он мог бы быть из коробки в акке
Ayrat
вот я за то чтобы эту страничку кода в либу унесли
Ilya
вот я за то чтобы эту страничку кода в либу унесли
Ну это не страничка, нужно как то рекавери мессадж сгенерировать
Ayrat
Ну это не страничка, нужно как то рекавери мессадж сгенерировать
ну это твоя доменная логика обработки приходящих сообщений в общем
Sergey
вот я за то чтобы эту страничку кода в либу унесли
А сильно отличается акка скаловская от фаршевской?
Ayrat
ну не очень. в скале её сильно больше хуесосят почему-то
Ilya
ну это твоя доменная логика обработки приходящих сообщений в общем
Не, это упала или нет нода с актором, к которому сделан тел
Roman
tell
Ayrat
аааа
Ilya
тел?
Ну или ask, если тебе больше нравится
Ayrat
я не понял зачем нам это в акторе знать
Ayrat
но я уже потерял ход дискуссии!!11
Sergey
ну не очень. в скале её сильно больше хуесосят почему-то
Ну эт я знаю, просто про отличия интересно было
Ilya
я не понял зачем нам это в акторе знать
Приведи пример, как ты сгенерируешь резет эвент, кроме как по тайм-аут?
Ayrat
Ну эт я знаю, просто про отличия интересно было
я кстати особо не знаю. Там есть удобный дсл для стримов (на стрелочках!) у нас есть в рантайме дженерики, но мы ими не пользуемся (как мудаки приводим все месаджи в обжект)
Ayrat
Приведи пример, как ты сгенерируешь резет эвент, кроме как по тайм-аут?
вижу в стейте сообщение без акноледжа, высылаем бригаду (сообщение генерим)!
Ilya
вижу в стейте сообщение без акноледжа, высылаем бригаду (сообщение генерим)!
А как ты его отличишь от сообщения, для которого он просто ещё не пришел