Size: a a a

Scala User Group

2020 July 22

АБ

Алексей Баринов... in Scala User Group
Правда с кластером есть свои заморочки и проблемы: если Jvm перегрузить и активно включиться сборщик мусора то кластер можно разрушить и на некоторое время все уронить. Но это только при условии что несколько узлов так себя будут вести
источник
2020 July 23

AD

Apache DOG™ in Scala User Group
Алексей Баринов
При этом с аккой очень изящно можно реплицировать/мигрировать сессии и прочие данные
А как же сплитбрейн, Any => Unit гибридные автоматы головного мозга и так далее?
источник

АБ

Алексей Баринов... in Scala User Group
Сплитбрейн мы через etcd отслеживали
источник

АБ

Алексей Баринов... in Scala User Group
Гибридных автоматов не делал:)
источник

AF

Anton Feoktistov in Scala User Group
Apache DOG™
А как же сплитбрейн, Any => Unit гибридные автоматы головного мозга и так далее?
Any => Unit решает акка тайпд.
От сплитбрейна сам Лайтбенд заопенсорсил таблетку, которая была платной.
Что вы имеете ввиду под гибридным автоматом?
источник

S

Simon in Scala User Group
Возможно под автоматом подразумевается сам актор, а Any => Unit - Receive.
Но с появлением typed акторов это T => Unit. При этом тип ответа, если есть, указывается внутри T
источник

ЮБ

Юрий Бадальянц... in Scala User Group
akka typed никак не решает проблему того, что всё приложение приходится делать как FSM. Далеко не каждая задача хорошо на это ложится. Получается очень многословно. Отлаживать сложно. Простой асинхронный вызов чего-то превращается в целую кучу кода.
источник

AF

Anton Feoktistov in Scala User Group
Юрий Бадальянц
akka typed никак не решает проблему того, что всё приложение приходится делать как FSM. Далеко не каждая задача хорошо на это ложится. Получается очень многословно. Отлаживать сложно. Простой асинхронный вызов чего-то превращается в целую кучу кода.
Согласен - тестировать сложно, и легко допустить ошибку если не нарисовал на доске все состояния. И как раз асинхронные вызовы мешают. В итоге в тестах всё работает, а на проде ловишь dead letters
источник

AF

Anton Feoktistov in Scala User Group
Какая альтернатива стейту+шардингу есть в скале?
источник

λ

λoλzod in Scala User Group
Anton Feoktistov
Какая альтернатива стейту+шардингу есть в скале?
Зачем эмулировать акторы и акковские решения?
источник

λ

λoλzod in Scala User Group
Если вам нужен именно этот подход то можно просто взять саму акку
источник

VS

Vyatcheslav Suharnik... in Scala User Group
> всё приложение приходится делать как FSM
чем foo ! Do(args) принципиально отличается от foo.do(args) ?
источник

λ

λoλzod in Scala User Group
Vyatcheslav Suharnikov
> всё приложение приходится делать как FSM
чем foo ! Do(args) принципиально отличается от foo.do(args) ?
вернее сказать чем вызов
(actorA ask (question) ) .flatMap { answer => ... } отличается от  serviceA.ask(question).flatMap{ answer => ... }

тем что в акторе приходится хендлить sender-а
источник

VS

Vyatcheslav Suharnik... in Scala User Group
это если тебе ответ нужен, а если не нужен, то ask нет
источник

VS

Vyatcheslav Suharnik... in Scala User Group
а в чем проблема хендлить sender-а? особенно в akka-typed
источник

λ

λoλzod in Scala User Group
проблемы нет, я отвечал на вопрос чем отличается
источник

VS

Vyatcheslav Suharnik... in Scala User Group
а, вопрос был другой: не понятно, почему на акке приложение становится все как FSM, а при других подходах - нет
источник

VS

Vyatcheslav Suharnik... in Scala User Group
и самое главное - почему это плохо
источник

XX

X X in Scala User Group
С tell там наворачивается ещё необходимость хэндлить неочевидным образом ошибки, ретраи, тайм-ауты и т.п. Так как всегда нужно держать в голове, что tell это прям совсем fire and forget и сообщение может быть не доставлено по миллиону причин. И можно конечно притвориться, что «так и задумано» и «не моя проблема», но это сильно сложнее, чем композиция функций через map/flatMap
источник

VS

Vyatcheslav Suharnik... in Scala User Group
с этим сложно спорить 🙂 если у тебя система не в одном JVM-процессе, это действительно проблема
источник