Romɑn
Тебе сначала легче будет.
Romɑn
Кучу оверхеда снимает, но и производительность не такая как у акки
Ayrat
АкторРеф - замена ссылки в ООП, её должен хранить только тот кто ответственен за рождение и смерть. Общаться по нему с актором не надо. Только ActorSelection и никакого ресолва. Проектировать надо так, чтобы не было возможности сообщению упасть в дедлетерс
Nikolay
Так, кажется я опять что-то не так понимаю
Klei
ни в коем случае! акторреф при стоп/старте меняется. Акторселекшн вечный
Ты это гарантируешь или просто когда-то запомнил и более не юзал?
Nikolay
Я думал у меня акторы будут вечными :)
Klei
Блъ.
Ayrat
Блъ.
А шо? По-моему это в доке жЫрным выделено
Éminence grise
Атас. Сколько же будет продолжаться этот парад велосипедов от недоучек? https://habr.com/post/424311/
Hog
А шо? По-моему это в доке жЫрным выделено
Ну, я зря в своём сообщении вопрос поставил :)
Hog
Хде? Я видимо пропустил.
Это по логике - оно ж нискоуровневое, а должно сери/десери
Ayrat
Хде? Я видимо пропустил.
жырным не выделено https://getakka.net/articles/actors/receive-actor-api.html#actor-lifecycle An IActorRef always represents an incarnation (path and UID) not just a given path. Therefore if an actor is stopped and a new one with the same name is created an IActorRef of the old incarnation will not point to the new one.
Ayrat
В акторах можешь разгуляться и обмазаться сайдэффектами, он же синхронный
Ayrat
Но персистентный актор переродится по той же ссылке?
не вижу ни одной причины чтобы это было так
Nikolay
Dictionary только
Так быстрее будет из-за мутабельности?
Ayrat
Так быстрее будет из-за мутабельности?
Естесна будет быстрее с мутабельным словарем. зачем тебе иммутабельный словарь ВНУТРИ актора хранить?
Nikolay
И ещё, если я буду персистентность делать, получается диспетчер не должен быть персистентным?
Ayrat
И ещё, если я буду персистентность делать, получается диспетчер не должен быть персистентным?
Я думаю тебе надо почитать что даёт персистентность и как в акке она реализована
Ayrat
EventSourced и всё такое
Klei
не вижу ни одной причины чтобы это было так
Вроде бы когда он падает, он респавнится самостоятельно и воспроизводит все ивенты. Я предполагал, что это происходит без полноценного пересоздания актора.
Ayrat
на рестарте акторреф сохраняется
Klei
Так.
Ayrat
По ссылке там же картинка есть с состояниями
Ayrat
и даже стрелочками нарисовано всё
Klei
Ок. Сначала почитаю.
Nikolay
Когда приложение перезапускается, и спавнится персистентный актор, данные для него подтягивают из источника, так?
Ayrat
Когда приложение перезапускается, и спавнится персистентный актор, данные для него подтягивают из источника, так?
воспроизводится цепочка событий, реакция на которые прописана в акторе События - персистентнты. реакция - нет. Соответственно стейт который получится в результате фолда всех реакций на стрим евентов может быть разный! (это бонус)
Romɑn
Ребят, орлианс это условная жава, а акка это условный с++
Romɑn
Если вам надо сделать формочку, то берите жаву. Если вам надо разобраться в с++, то берите с++)
Romɑn
Ну значит в правильном иду направлении :)
Ок) тогда не буду агитировать )
Igor
Romɑn
Ну значит в правильном иду направлении :)
мне казалось ты про цепи Маркова говорил
Nikolay
мне казалось ты про цепи Маркова говорил
Ну думал это хорошая идея для акки, оказалось - нет
Ayrat
А снэпшот нужен лишь для того, чтобы не воспроизводить всю цепочку, а лишь часть?
Так точно. Снепшот - сериализованный стейт. Если у тебя реакция поменялась, снепшот можешь выкинуть, он уже не роляет
Éminence grise
Только в орлианс
Да не совсем так. Можно считать, что в орлеанс у актора есть супервизор по умолчанию. И им нельзя управлять. А в акке супевизор детерминированный, и насколько я понимаю имнно ему принадлежит mailbox дочернего актора.
Romɑn
И супервизор косвенный)
Romɑn
Я говорил про акторреф)
Éminence grise
А так ка актор реф это по большому счету ссылка на мейлбокс актора, то падение самого актора не отменяет ссылку на его мейлбокс
Igor
Нет
Там, разве не интерфейсы с кучей async-методов?
Éminence grise
Там все прсто спрятано под капот
Igor
Похоже на WCF
Romɑn
Похоже на WCF
МэйлБокс похож на акку?)
Igor
Тем что там один метод, который принимает Msg и там патерн-матчит его - наверное да, но я не специалист
Ayrat
да не, WCF можно и нужно БЫЛО делать типизированным
Romɑn
Везде знокомое найти можно
Ayrat
в смысле интерфейс между клиентом/сервером
Éminence grise
Вообще то все три (акка, orleans, mailbox) - разные реализации одного и то го же.
Éminence grise
в смысле интерфейс между клиентом/сервером
Нет - это просто match переписаный на интерфейс. Внутри все так же. И grains общаются друг с другом через GrainRefernces
Éminence grise
Я про WCF, я с орлинсом плохо знаком
А вот сримов, как в акка в нем нет. И порог входа там ниже.
Ayrat
А вот сримов, как в акка в нем нет. И порог входа там ниже.
я всё хотел изучить из-за нативной поддержки грейнов в ажурном облаке. Но вот после ажурных функций на F# чот больше нет надобности
Ayrat
Не считая того, что орлеанс быстрее 😊 И в простых случаях удобнее
в орлинсе молодцы, свой шедулер сделали топовый. По типу гопака, го и цмл В акке дрочат всё ещё на дефолтном убогом таск шедулере
Ayrat
Если бы у меня на акке была текущая работа завязана, переписал бы на гопак чесслово
Éminence grise
Ну и например распределенный put throught кеш с автомасштабированием на орлеансе написать - час. А на акке - я честно замучаюсь.
Ayrat
https://github.com/AkkaNetContrib/Home/issues/24
Éminence grise
https://github.com/AkkaNetContrib/Home/issues/24
Круто. Но автор акки.нет вообще занялся ProtoActors, а остальные усиленно дублируют ошибки Java к нам.
Ayrat
На самом деле это могло бы спасти гопак, т.к. поддержка от такого комьюнити как Акканет либе пошла бы на пользу
Vladislav
какой хорошой чатик всё-таки
Vladislav
держите любви тонну
Éminence grise
Hopac нужно спасать. Сижу пытаюсь понять можно ли еще что то выжать из Hopac.Core за счет ref Struct. И надо бы написать пусть кривоватый, но CSharp api.
Romɑn
Писал девушке из Питера. Больно нравятся такие глаза
Romɑn
А там оказалось
Romɑn