Nikolay
поэтому я и говорю - юзай готовые решения
Т.е. акторы не подходят для такой задачи?
Ayrat
Короче, я снимаю знамя кухонного архитектора хайлоад месенджеров, кто хочет подбирайте.
Крылатый
Шаришь
Не удивлюсь, если оно так и есть.
Ayrat
Т.е. акторы не подходят для такой задачи?
мне кажется это ты к ним не подходишь :D
Ayrat
Акторы это акторы, просто заменять акторами ВСЁ - неправильно и не сработает
Nikolay
Но зачем писать свою базу на акторах?
Ayrat
Но зачем писать свою базу на акторах?
я не знаю. я б не стал писать. А в чём там база-то? Dictionary один в акторе и погнали
Sergey
Зачем юзать акторы?)
Ayrat
Он какой-то слишком жирный
Есть преждевременные оптимизации, а есть преждевременный хайлоад
Ayrat
вот у тебя второе
Nikolay
Понять, как такие задачи решаются акторами
Nikolay
Это просто интерес
Nikolay
Есть ли какое-то элегантное решение
Ayrat
Понять, как такие задачи решаются акторами
для начала тебе надо собрать экспертизу по акторам, т.е. попробовать банально
Ayrat
потому что я вижу что мои советы встречаются непониманием. Мне кажется ты с акторами мало работал
Nikolay
Ну как бы да, мало, только разбираюсь с ними
Nikolay
Как и для чего их можно применить
Nikolay
В прошлом году тут в чатике их так хорошо продали :(
Ayrat
Ну, они всё ещё хороши, ничего не изменилось) Но это инструмент со своим полем применения
Ayrat
персистентные акторы тоже инструмент, и т.к. основаны на евентсорсе, хорошо подходят для списочного хранения истории изменения СОСТОЯНИЯ. (история сообщений, по которой надо выцеплять отдельные мессаги, не является агрегируемым состоянием с событиями-месаджами, это просто куча сообщений)
Ayrat
т.е. евентсорсд под хранение месаджей не подходит в принципе
Nikolay
Про историю я уже понял
Nikolay
Тут вопросов нет
Nikolay
А вот по индексу есть вопросы, мне кажется, что это будет не ок хранить такой жирный объект
Ayrat
Но это не проблема модели акторов
Nikolay
Ну вот я и пытаюсь понять, как эту проблему решать 🤷‍♂️
Ayrat
Ну вот я и пытаюсь понять, как эту проблему решать 🤷‍♂️
ну тебе уже дали много советов как это сделать. Наивный подход - дикшнари Чуть усложним - много дикшнари, каждый для своей буквы Ещё усложним - редис Совсем пиздец - редис с когда-нибудь конститентностью с персистентным хранилищем. Для редиса есть готовые решения если чо, т.е. усложнение не очень страшное
Ayrat
Ещё усложним - кластер редиса
Vladislav
Мимо проплывает база данных
Ayrat
Мимо проплывает база данных
ну человек хочет ин-мемори гугло телегу запилить, не надо его останавливать
Ayrat
Мимо проплывает база данных
про БД тоже уже много раз сказали
Nikolay
Я даже и говорю о том, чем это тогда от прямого запроса в базу отличается?
Ayrat
а так - ничем
Nikolay
Ну и вообще, меня впечатлило, что Вагиф со своей командой сделали полностью всё на акторах :)
Ayrat
хранилище оно и есть хранилище
Nikolay
Ну это понятно
Ayrat
ты знаешь требования его задачи?
Nikolay
Вот я и пытался выяснить, можно ли это сделать в данном кейсе, или нет
Nikolay
Как бы вопрос снят
Roman
Ну это понятно
Вообще разумно говорят, если у тебя нет опыта с акторами и опыта написания хайлоад мессенджеров, то сразу обе задачи решать слишком тяжело)
Nikolay
Ну сейчас речь не обязательно про месседжер идёт. По сути просто поиск актора по уникальному идентификатору
Nikolay
Который может меняться, правда
Vladislav
Я кстати пытался писать бота на акторах
Vladislav
В итоге умер нахуй)
Vladislav
Я
Vladislav
Я в один момент перестал понимать происходящее
Vladislav
Типо того
Vladislav
Плюс они там ненужны
Nikolay
Я писал игрового бота как-то, и там акторы, наверное, были бы кстати, ибо очень много разных стейтов и переходов было
x
Плюс они там ненужны
почему? поддерживать беседу с определённым пользователем
x
запоминать свои шутки и не шутить так же в том же чате, например, год
Vladislav
Оно там не надо было - он тупо историю писал
Nikolay
Оно там не надо было - он тупо историю писал
Ну можно было бы mailbox запилить наверное
Nikolay
Хотя
Nikolay
https://github.com/Dolfik1/ItMeetupCats/blob/master/Program.fs
Nikolay
Попробуй разберись
Ayrat
Попробуй разберись
Потому что код без документации - кусок известно чего! :D
Vladislav
Да проще «как обычно» писать
Ayrat
а актор система без диаграмм - ещё больший кусок
Ayrat
Да проще «как обычно» писать
акторы спасают в достаточно больших системах. Маленькие проекты от них не выигрывают
Nikolay
Nikolay
А вот почему он это делает, и в какой последовательности, это вопрос
Ayrat
Кто, что делает тут понятно, я думаю
ну ты спросил разобраться в коде с акторами) Могу сказать что это нетривиально в общем случае если нет доки и диаграммы общения акторов
Nikolay
Ну диаграмма бы да, не помешала
Ayrat
Ну диаграмма бы да, не помешала
Мы к диаграмме сами пришли когда поняли что пиздец за углом
Ayrat
ну и далее без всяких стандартов, наваяли квадратики со стрелочками
Nikolay
Помогло?
Aleksandr
Сори за оффтоп, но кто-нибудь из вас писал свои компиляторы под llvm?
Aleksandr
Огонь, спасибо
Ayrat
Там суровые ребята сидят