Сегодня хочу рассказать тебе о прекрасном функциональном языке для написания неубиваемых распределённых систем, а более конкретно вебни на бэке, больших soft-realtime систем, IoT говен и оперденей. Называется он Elixir, а работает он на виртуальной машине real humanBEAM, на которой ещё работает язык Erlang.
Немного истории
Эликсир это современный язык, построенный поверх языка Erlang с блекджеком и лисповыми макросами. У этих языков полный интероп в обе стороны, но при этом эликсир лишает вас этого удовольствия написания. Сам язык Erlang появился в компании Ericsson как язык для написания максимально отказоустойчивых телекоммуникационных систем. Именно из желания создать среду для написания максимально отказоустойчивых систем появились все основные фичи.
Основные фичи
⚹ Ахуенно приспособлен к разработке параллельных и конкуррентных программ. Эликсир способен запускать мильоны процессов-акторов, работающих асинхронно, с различными приоритетами и всем таким. Эти процессы не делят память и общаются через пересылку сообщений.
⚹ Ахуенно приспособлен к разработке распределённых систем. Все основные проблемы написания распределённых систем вроде сихнронизации монотонных часов, общения между машинами, поиска машин, heartbeat-ы, группы процессов, gossip-ы уже включены в язык. Любая достаточно сложная распределённая программа содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Erlang. (с)
⚹ Ахуенно приспособлен к разработке отказоустойчивых систем. Что делают кубы, когда падает сервис? Они перезапускают его. Эрланг делает то же самое, только не с сервисами, а с процессами, и это значит что неожиданное исключение в одной части функционала никак вообще никак не заденет другой функционал. Гоферы пытаются достичь того же с помощью микросервисов, а в Elixir такой функционал изкоробки.
⚹ Ахуенный тулинг. В отличие от эрланга с его хэдерами, makefile-ами и прочими пыльными приколами, эликсир за секунды позволяет создать проект, скомпилировать его, сконфигурировать его, собрать артефакт, скачать зависимости и всё такое в стандартах всех современных языков. Серьёзно, местный билдтул (mix) гораздо лучше чем забугорские cargo, npm, go и gem.
Нахуя
Ты хочешь нормально спать по ночам? Ты хочешь отказаться от ночных дежурств? Ты хочешь сэкономить на этих богомерзких девопсах и прочих сисянах? Ты устал дебажить очередной дата-рейс ебучих горутин?
Я хочу спать по ночам. Как вкатиться?
Чтобы успешно найти работу на эликсире, нужно уже иметь некоторый опыт разработки за деньги и понимание того какое же говно это ваше ойти. Желательно от одного года в вебе. Самый быстрый способ обучения это в то же время и самый эффективный способ, поэтому синтаксис и стандартная либа постигается вот тут https://elixirschool.com/ru
Более подробное описание внутренностей, хороших практик и хитростей стандартной либы описывается вот тут. Тут будет эрланг, но это не должно быть проблемой https://learnyousomeerlang.com/
Тому, кто ценит своё время, я советую начать писать какой-нибудь проектик параллельно с чтением книжек. Чтобы стать джуном на эликсире опытному бэкендеру нужно не больше месяца.
Рыночек
Средняя температура по больнице зарплата у эликсирщика традиционно больше чем у любого друогого языка как минимум в два раза, поэтому поменять голанг или питон на эликсир будет выгодно. Вакансии на рынке РФ существуют, искать можно на hhрю или в чатиках в телеге t.me/proelixir. Забугорных вакансий значительно больше и они охотно нанимают разработчиков с опытом. Самое важное качество при найме это не знание самого языка, а софт-скиллы и общее понимание веб-разработки как таковой, так что придётся социализироваться.
Здравствуйте! Я - Elixir разработчик. Это моя профессия. Так сложилось исторически.
Когда-то я разработал Erlang. Теперь это язык поддерживающий параллельные легковесные процессы и асинхронность. Теперь на нём удобно разрабатывать распределённые системы. Теперь на нём написан RabbitMQ.
Я разработал OTP. Этот фреймворк я применил про разработке огромного разнообразия высоконадёжного телекоммуникационного оборудования. OTP стала неотъемлемой частью экосистемы Erlang.
Я разработал BEAM и ERTS. Вместе они позволяют коду на Erlang эффективно распараллеливаться и надёжно выполняться на разных узлах распределённой системы.
Я обогатил Erlang метапрограммированием и полиморфизмом создав новый язык Elixir, который можно применять везде!
Я создал Phoenix. Фреймворк с отличной производительность и масштабированием объединяющей в себе всё необходимое для веб разработки.
Да, я - Elixir разработчик! И я устал извиняться за это... Я разработчик по праву рождения. Я проектирую и имплементирую. Бойтесь!
Да, реально. За доллары сильно проще чем не за доллары. На ~5к можно рассчитывать если миддл. Если сеньор, то как добазаришься, тут нет верхней планки, средняя это 7-10к где-то.
а как вы без типов живете? меня вот заебал фронтенд (из за конченных дебилов фронтендеров западных с которыми я не хочу работать в одной компании) хочу свитчнуться на какой-нибудь сложжный язык который любят программисты, хаскель учил но судя по всему вакансий по нему особо нет, на элексире вроде есть вакансси, скалу не хочу потому что там вроде как джаву надо знать, раст не хочу потому что мне кажется он душный какойто
Из того что я видел в вакансиях это бэкэнды, вебсайты (любые, от ecommerce до стриминга видео и приложений), телеком, сервисы, брокеры, ML, нейросети, IoT, алготрейдинг, боты в телеге
Да какие тут вопросы, ещё более мёртвая вещь чем Ruby и Rails И явно не для вкатунов, не представляю как на нём работу искать, очень редко на hh может мелькнуть вакансия
>>3351068 (OP) >Вакансии на рынке РФ существуют, искать можно на hhрю или в чатиках в телеге t.me/proelixir. Десяток вакансий за последний год. Да на дельфи работы больше.
>>3351068 (OP) Хочу сделать табличку, в которую клиенты компании будут ходить и смотреть данные из нашей БД. Чтобы была сортировка, фильтрация по столбцам, поиск, выбор колонок и т.д. С одной стороны хочется, чтобы писать кода надо было минимум, потому что люди, которые будут это в будущем поддерживать, скорее всего, далеки от современной веб-разработки. С другой хочется, чтобы всё было прозрачно, а не спрятано за кучей слоёв фреймворка, чтобы мне одному проще было в этом разобраться.
Собственно, я придумал только два варианта: 1) Elixir + Phoenix LiveView. Не уверен, насколько мало надо писать в итоге кода, но выглядит как то, что мне нужно. Проблема в том, что кроме меня в эликсире вряд ли кто-то захочет разбираться. 2) Go. Просто в тупую получать запрос и генерить HTML в ответ. Максимально прозрачно, но много кода. Зато если что, разрабов будет проще найти.
>>3406487 Это дохлый тред, если ты не понял. > Зато если что, разрабов будет проще найти. Я бы на твоём месте отталкивался от этого. Эликсир, кмк, язык отличный, но слишком нишевый, чтобы с ним можно было уверенно экспериментировать в профессиональной среде, потому как сотрудников ты действительно не найдёшь.
Забеги на elixirforum.com, там достаточно лояльное сообщество, спроси про свои беды. Тебя направят, помогут определиться.
>>3406487 >Проблема в том, что кроме меня в эликсире вряд ли кто-то захочет разбираться.
Эликсир проще чем руби и питон, там разбираться не нужно. Эликсир с нуля учится за две недели. В год можно изучить до 26 эликсиров.
> Хочу сделать табличку, в которую клиенты компании будут ходить и смотреть данные из нашей БД. Чтобы была сортировка, фильтрация по столбцам, поиск, выбор колонок и т.д.
Здравствуйте. Хочу для себя, обучения ради обучения, потыкать эликсир и переписать свою программу на питоне на Elixir. Изначально на питоне хотел сделать прототип, чтобы переписать потом, но так уж вышло, что сделал полноценную программу, но цели всё равно достигнуть хочу. Так вот, программа запускает отдельные процессы через multiprocessing, которые могут работать сутками, а то и больше, общение идёт через mutliprocessing.Pipe через мои "сообщения", если угодно, а именно датаклассы с параметрами разными. Хочу попробовать переписать на эликсир её. Подходит ли этот язык для таких "долго работающих" задач и удобное ли взаимодействие с этими процессами, отслеживание упало/не упало, обработкак ошибок, запросы по сети делать на сайты, доступ к БД, файлой системе?
Хочу сделать запуск процедур по расписанию точково (как scheduled сообщения в телеге) - как это сделать в эликсирчике с фениксом? реббит с scheduled tasks плагином не варик так как оно сносно работает только с датами в скором будущем + потенциально проебывать некоторые запуски не оч хорошо поэтому нужна запись в базу
>>3351068 (OP) Если оформлять вкат в эликсир здорового человека - по-хорошему нужно освоить эрланг для начала? 5 лет назад внезапно столкнулся на работе с эрлангом, рефакторил старый сервер, было сложно пердолиться, но парадигма языка запала в душу с тех пор. С элексиром я так понимаю карьерные перспективы становятся кратно выше.
>>3441484 > Подходит ли этот язык для таких "долго работающих" задач и удобное ли взаимодействие с этими процессами, отслеживание упало/не упало, обработкак ошибок, запросы по сети делать на сайты, доступ к БД, файлой системе?
Да, подходит больше чем Elixir, с ним не нужны хаки типа multiprocessing, не нужнен ебучий async/await, просто пишешь как обычно пишут на Elixir и всё асинхронность и многопоточность будет из коробки
>>3441520 > Хочу сделать запуск процедур по расписанию точково (как scheduled сообщения в телеге) - как это сделать в эликсирчике с фениксом?
Лучше всего через job queue какой-нибудь. Или можно на коленке: класть в базу что нужно в такое-то время отправить сообщение. и вешать Process.send_after. На старте и, например, раз в день, читать из базы и обновлять таймеры
>>3441632 Отдельно учить Erlang не нужно, он сам учится в процессе освоения Elixir, различия будут только в не очень важных деталях типа там синтаксиса и немного других модулей. Кароче, учи сразу Elixir и не парься. Работы на Elixir больше, это факт, особенно если ты джун/миддл. На Erlang работа есть только для очень опытных, и чаще всего в легаси проектах
>>3351068 (OP) Я попросил нейросеть написать сервис на ерланге и то же самое на эликсире. Если в эрланге есть математическая красота, то эликсир какой-то всратый, будто эрланг измазали джаваскриптом. Впрочем, вкатиться импосибл в оба, на рынке полторы вакансии с требованиями 5+ лет опыта.
>>3351068 (OP) >Чтобы стать джуном на эликсире Все равно, что пытаться найти работу на Erlang, Haskell или OCaml. Смысл лезть в полумертвые языки, где тулинг, библиотеки и фреймворки остановились в развитии на уровне начала 00-х годов? Тут даже на популярном стеке проблематично найти работу, что уж говорить о такой экзотике
>>3465565 >даже на популярном стеке Как раз во всякой дохляди должно быть проще, потому что там не то что волков и упругих зумеров, там вообще желающих с этим возиться даже предпенсионного возраста хуй найдёшь. Поэтому на такое обычно берут всех, кто не совсем тупой, имеет хоть сколько-то серьёзный опыт (пусть даже сраных петпроектов) и замотивирован развиваться дальше.
Мне недавно попался gleam, по доке понравился. Оссобено его аналог do синтаксиса для монад. Только отсутствие if, в пользу match true false -> шиза. За erlang, elixir не разбираюсь, просто gleam в beam таргетится. Может у ветеранов акторных войн есть мнение.
>>3465580 >там вообще желающих с этим возиться даже предпенсионного возраста хуй найдёшь Это либо переписывание интернет магазинов с руби он реилс на эликсир и феникс, либо, если мы говорим про эрланг, то в 99% случаев это телеком где эрланг вообще сбоку и нужен как клей для модулей на сишке. Вакансий так же полторы штуки и залетные нахуй не нужны. Окамл хз где используют кроме как в джейн стрит где от него потихоньку отказываются. Скала сдохла. Хаскелл тупо академическая залупа. Была вакансия в тиньке даже, но там искали яйцеголового любителя фп, чтобы он какой-то рулер писал для кредитования. Еще в барклейс искали хаскеллиста. Это настолько нишевая и точечная хуйня, что желающих попасть будет побольше чем на какой-нибудь гоулэнг, т.к. у тебя рили вакансий - раз два и обчелся
>>3465371 Асинхронности нормальной нет. async/await уже весь мир, включая самих питонистов, признал как полный кал. Посмотрите на Elixir, Go, Java, Rust, там везде нормальные гринтреды/csp.
Многопоточности нет. multiprocessing это хак, который с async/await никак не интегрирован. А многопоточные wsgi серверы это позор уровня PHP. Например, если у меня один процесс будет набит работой, а другой будет пустой, то рантайм автоматически их не сбалансирует и не распараллелит, а это надо будет делать разработчику
Это в РФ, смотри Европу и США, там охотно нанимают на релокейт из любых концов мира. На моём проекте больше половины разрабов это СНГ и Индия/Китай (примерно поровну каждых). Спрос на разрабов есть
>>3465565 > тулинг, библиотеки и фреймворки остановились в развитии на уровне начала 00-х годов
Ну тут ты не прав. У Elixir пиздатейший тулинг, тот же mix, например, сильно удобнее чем даже cargo. А фреймворки, посмотри на Phoenix, например. Они первыми сделали LiveView, там очень сильный PubSub, вот сейчас завозят PhoenixSync, который типа eventually consistent database sync сразу на клиенты.
Библиотеки тоже на любой вкус. Пиши что тебе нужно, я подскажу либу
>>3465661 > Это либо переписывание интернет магазинов с руби он реилс на эликсир и феникс
Нихуя, я думаю на Elixir e-commerce вообще не очень популярен. Большая часть проектов на Elixir это всякие интерактивные вебсайты, стриминги, чатики, какие-нибудь бэкенды. Ещё Elixir в IoT и ML присутствует
> если мы говорим про эрланг, то в 99% случаев это телеком где эрланг вообще сбоку и нужен как клей для модулей на сишке
Это было правдой лет 20 назад, когда всё писали на C/C++ и мультитрединг там был очень душный, поэтому параллелили через Erlang. Сейчас на Erlang есть и телеком, и вон много всякой IO-bound хуйни пишут типа EMQX, бд типа CouchDB, тот же RabbitMQ. Но сейчас уже Erlang и правда больше легаси и вытесняется Elixir-ом
>>3465611 Gleam норм тема. Пока что он слишком сырой для прода, там не хватает экосистемы и всякие моменты внутри языка пока ещё не готовы (вроде статической типизации акторов).
Поэтому это риск, ведь не факт что Gleam успеет обрасти экосистемой раньше чем у Elixir появится статическая типизация.
>>3466117 >Ну тут ты не прав. У Elixir пиздатейший тулинг Хотя бы IDE нормальную завезли уровня IntelliJ IDEA?
>Библиотеки тоже на любой вкус Кто из крупных игроков вкладывается в развитие тулинга и библиотек/фреймворков в эликсире? Именно крупные компании, которые разрабатывают и поддерживают эти решения, а не ноунейм пердольки, которые выпукивают свои поделки на гитхаб
>>3466119 Последний раз, когда я тыкал Эрланг, там даже нормальной поддержки со стороны IDE не было. Фанатики убеждали меня, что IDE это фу-фу и норм писать в обычном текстовом редакторе, временами переключаясь в терминал и пытаться скомпилировать код, чтобы получить сообщения об ошибке и затем идти обратно в редактор, чтобы их пофиксать. Про интеграцию со всякими дебагерами, запуском приложения и т.д. и т.п. я не говорю - этого нет На эрланге все саксесс сторис которые я видел это демонвейр с их сервером для калловдути и прочие поделки из мира телекома где эрланг вообще сбоку и нужен тупо как клей. С приходом гоулэнга и клауд нейтив в виде контейнеров и кубера эрланг нахуй выкинули. А эликсир это как раз попытка влезть на поляну руби и рор с его интернет-магазинами и сайтами визитками
>>3466446 > Хотя бы IDE нормальную завезли уровня IntelliJ IDEA?
Ты из каменного века пришёл? В твоём мире колесо изобрели или пока нет? Какие нахуй IntelliJ IDEA, ты ебанулся? Весь мир пишет весь код в VSCode или Cursor, которые тупо пользуются language server-ом (для эликсира такой есть)
> Кто из крупных игроков вкладывается в развитие тулинга и библиотек/фреймворков в эликсире? Именно крупные компании, которые разрабатывают и поддерживают эти решения, а не ноунейм пердольки, которые выпукивают свои поделки на гитхаб
Нихуя не понял как это с качеством связано. Я смотрю на Java и вижу что там много корпоративного кала, который меняется от версии к версии и нихуя стабильного там нет. И я смотрю на Elixir, где есть куча качественного софта, большинство из которого крутится в реальных продах и ежедневно улучшается этими компаниями
>>3466447 > А эликсир это как раз попытка влезть на поляну руби и рор с его интернет-магазинами и сайтами визитками
Не знаю, может из того тугого очка, откуда ты на мир смотришь, так и кажется, но у меня дохуя лет опыта в экосистеме и это нихуя не так. Хочешь саксесс стори на Elixir? Дискорд. Дальше продолжать или может хотя бы погуглишь прежде чем здесь писать своё ахуенно полезное мнение?
>>3466160 > Не нужен. Все системы на шине событий превращаются в говно.
Это не про шину событий, а про PubSub, типа как MQTT, только без стороннего сервера, а прям внутри системы. Очень удобно, так как тупо оптимизирует весь поллинг в местах, где нужен синк всяких вещей которые меняют разные клиенты (типа там чатов или стримов или чего-то такого)
>>3466160 > Вангую все закончится еще одним KV хранилищем, снова.
Мимо родной, почитай хотя бы доку. Суть PhoenixSync такая: ты можешь считай подписаться на SQL запрос в постгрю. Ты типа этот запрос шлёшь в базу и тебе возвращается бесконечный стрим, внутри которого лежат все изменения по этому запросу. Пока что оно работает только на очень тупых запросах и плоских таблицах, но в целом это считай автоматическая инвалидация кэшей. Где ты такое ещё видел?
>>3466819 >Весь мир пишет весь код в VSCode или Cursor, которые тупо пользуются language server-ом (для эликсира такой есть) Очевидно, ты не понимаешь, что такое IDE и поддержка языка программирования в нем. Твой вскод обычный текстовый редактор. lsp вообще не решает проблем про которые я говорил. Автокомплит, поиск по коду и прочие интеграции в вскоде не реализованы
>>3466827 > Очень удобно, Представил картинку с ртом в говне.
Удобно это сигналы, потому что они локальны и конкретны. Можно строить иерархии сигналов, можно делать условия передачи сигнала, можно строить сетевые экраны и транспорты которые работают с сигналами из какой-то области видимости. Можно делать что угодно, блядь. И это наверняка в ерланге уже давно реализовано. А пабсап. Ну. Что-то из мира ООП-кала с протёкшей абстракцией, да?
Лучше бы они придумали что-то чтобы эликсир в си компилировался. Вот это полезно.
>>3466119 >Но сейчас уже Erlang и правда больше легаси и вытесняется Elixir-ом Тут проблема даже не в том, что он легаси, сколько в том, что и Erlang, и Elixir очень нишевый и на них очень мало проектов создаётся. Чисто в сравнениюю с проектами на том же Python, которых в тысячу раз больше.
>>3466908 >Иными словами, дергаем запрос по кд. Зумеры изобрели поллинг. Дык это не полинг, это пушинг. С другой стороны, я согласен, что шина событий и централизированные KV-зранилища — это ебаный рак. Каждый раз, когда кто-то делает распределённую систему, выпрыгивает тимлид-архитектор и орёт "нужно централизованное ACID-complaint хранилище, по best practice". Какого хуя вообще в Elixir делает постгря? Вот что хотелось бы спросить. По сути писание системы на Elixir+Phoenix+PostgreSQL делает её заменой для Ruby+RoR+PostgreSQL — "заменой" в том плане, что Ellxir намного быстрее и масштабируемее. По производительности и модели выполнения оно ближе к Go+Gin+PostgreSQL при том допущении, что у вас один хуй централизированная параша, а отдельные распределённые сервисы вы будете оркестрировать каким-нибудь кубернетом.
Я не понимаю тебя, долбоёб, ты что в этом треде забыл? Есть сигналы, есть телеметрия, есть эвенты, есть пабсаб, есть хуйня на любой вкус и цвет.
Твой аргумент-то в чём? В том что тебе пабсаб не нравится? Так и не пользуйся, дегенерат, возьми любую другую хуйню. Мне лично на пабсаб тотально похуй, у меня нет никаких чувств к нему, я подключаю его когда он решает мне вполне конкретные проблемы. Я тебе, ебанат, не предлагаю ебаным пабсабом решать каждую проблему распределённого мира.
>>3467921 Мой аргумент в том, что этот кал идёт по пути развития пхп - прямо нахуй в бездну. Вместо допиливания реально важного - быстродействия, занимаются какой-то хуйней.
>>3467941 Ты меня заебал, я тебя в другой тред послал, потому что ты пишешь хуйню про которую вообще нихуя не знаешь. Реально, твоё мнение будет очень ценным в тредике про питон или по какому там ещё игрушечному языку ты осилил "введение для чайников" прочитать. Сюда свои высеры не пиши.
Ну вот просто посмотрим на хуйню, которую ты написал и оценим насколько ты прав чисто чтобы ты сам понял насколько твои высеры тут никому нахуй не нужны.
> Вместо допиливания реально важного - быстродействия, занимаются какой-то хуйней.
Во-первых, PubSub-ом для Phoenix и разработкой рантайма занимаются совершенно разные люди. Это вещи разного уровня, внутри там разные технологии, совершенно разная экспертиза требуется.
Во-вторых, про быстродействие, в релизах OTP регулярно происходят оптимизации. С того как в OTP 24 появился JIT, каждую версию они его допиливают, вводят статическую типизацию на уровне Core Erlang (один из IR-ов), чтобы JIT генерировал как можно более быстрый нативный код.
В-третьих, твои набросы на PubSub это просто постная хуйня. Если ты не знаешь как пользоваться PubSub-ом и в каких задачах его применяют, то ты автоматически идёшь нахуй. Конечно, ебать, если ты на PubSub писал движок для сетевой видеоигры, ты насосал хуёв c PubSub-ом, но ты их насосал не потому что PubSub хуйня (он как раз не хуйня), а потому что ты долбоёб конченный применил технологию там, где она нахуй не нужна и для чего она не подходит. Если у тебя между ушей сейчас какие-нибудь две клетки мозга замкнутся, я думаю ты поймёшь что я имею в виду, но, к сожалению, шансы очень нахуй не велики
>>3467975 > Ты меня заебал, я тебя в другой тред послал, Ещё мочератору поплачь что в твоём треде срут и постят неприятное, хех
> Во-первых, PubSub-ом для Phoenix и разработкой рантайма занимаются совершенно разные люди. Ага, так же как дистры хрюникса пишут разные люди которые не могут хоть как-то собраться и найти компромисы. Итог очевиден.
> С того как в OTP 24 появился JIT, > вводят статическую типизацию на уровне Core Erlang (один из IR-ов), А ясно, вопросов больше не имею. Дебичи думают что они такие же гении как в гугле с их V8. Типы нужно на уровне языка внедрять, какими угодно способами, чтобы не пилить безумное говнище на жите которое совершенно точно работать не будет.
> В-третьих, твои набросы на PubSub это просто постная хуйня. Если ты не знаешь как пользоваться PubSub-ом и в каких задачах его применяют, то ты автоматически идёшь нахуй. Пабсаб применяют говноеды которым норм протёкшие абстракции хавать. Больше тут нечего сказать.
> Если у тебя между ушей сейчас какие-нибудь две клетки мозга замкнутся, я думаю ты поймёшь что я имею в виду, но, к сожалению, шансы очень нахуй не велики Уверен, ты уже замечал какие-то неприятные моменты в пабсабе, именно по этому у тебя так разорвалась твоя говноедская жопа. Ты знаешь что я прав, а ты поел говна.
Начнём с того что ты писал что надо сделать компилятор в C. Эта хуйня уже была для Erlang (до R1 версии, если я не ошибаюсь) и работало ультрахуёво из-за того что разные компиляторы и под разные системы компилируют совсем по-разному и из-за того что это было тупо медленно, так как было две компиляции вместо одной. И ещё была такая система как HiPE, которая AOT компилировала в натив через LLVM, и это тоже был кал. Так что тут ты проебался и нихуя знаешь
Далее, ты написал что типы не внедряют. Но под Elixir и Erlang есть статическая типизация в виде Dialyzer (она unsound, чисто чтобы банальные ошибки ловить) и есть ещё проект который в процессе с полноценной статической типизацией для Elixir. А, ну и есть Gleam, который уже со статической типизацией. Оп-па, ты и тут проебался и нихуя не знаешь.
Дальше про PubSub ты какую-то хуйню пишешь. На PubSub пишут не только в Elixir, есть ещё MQTT, есть всякие платные аналогичные сервисы от cloud-провайдеров типа AWS SNS и аналогов, и есть ещё дохуя других PubSub решений. Люди на MQTT-брокерах делают заводы на IoT платках, которые заменяют успешно заменяют заводы на которых работают как раз такие долбоёбы вроде тебя. И пока ты тут пиздишь что это PubSub это ненужный кал, люди используют PubSub решения и гребут бабки лопатой. И даже здесь ты проебался.
В итоге, в каждой хуйне, которую ты тут высирал, ты был фактически не прав. Не то что бы это были какие-то открытые вопросы, и у нас было разное мнение, а это были тупо факты, которых ты не знал, и тупо кукарекал в моём тредике. Поэтому я и прошу тебя съебаться нахуй отсюда и не ебать тут адекватным людям мозги своими высерами
>>3468061 Заорал нахуй с завода на пабсабе! Ебало инженера представили который ходит по цехам и пытается понять интерфейсы каждого устройства, потому что документация немного не в порядке. Пиздец ты фантазёр-дегенерат, братишка.
>>3468061 Алсо, ты не понимаешь что пабсаб вообще не предназначен для заводов, потому что нужна надёжная доставка сообщений и логирования, а это ломает всю парадигму пабсаба - низкую связанность. Это классически архитектурный проёб от долбоёба на архитекторе. Видимо ты даже не писал никогда на пабсабе, если этого не понимаешь. Не буду утруждать тебя размышлениями, а то ещё умнее станешь.
>>3468064 Пиздец как мимо ты пишешь, родной. Почитай про MQTT и основные места его применения. Доставка бывает достоверной, а бывает надо собрать данные со 100500 различных датчиков, и вот тут и используют MQTT. Опять же, у тебя очко шире чем кругозор. Ты меня просто заебал своей поверхностной хуйнёй
Что backpressure? Ты понимаешь что такое датчик? Это микромаленькая одноплатная хуйня на 50кб памяти, которая может послать сообщение по UDP, но не может сохранить в памяти больше чем 2 сообщения. Какой нахуй backpressure в IoT
Поэтому и используют MQTT: если сабскрайбер не хочет получать сообщение, он его просто скипает, потому что других вариантов у него особо и нет. И, если что, у MQTT есть 3 уровня разных гарантий доставки (от клиента брокеру).
Опять же, ты проёбываешься буквально в каждой хуйне, которую пишешь.
Discord переписывают два небольших алгоритма на Rust чисто для работы с мутабельной shared-memory и из-за этого все остальные 99.9% кода перестают быть Elixir-ом?
Ты ахуеешь, но рантайм языка и многие встроенные модули (типа crypto) написаны на C. Как и, например, Nx это один большой NIF. Получается нет ни одной программы чисто на Elixir?
Что значит клей? Elixir более высокоуровневый язык чем C или Rust, конечно. Я бы даже сказал что он более высокоуровневый чем Java, C# и даже Python. Но даже эти же C#, Java, Python очень часто используют нативный код в том или ином виде (как минимум openssl). Но это не значит что эти языки это клей для C, потому что большая часть кода и логики там всё равно на высокоуровневом языке.
В случае с дискордом, там Rust-а очень мало. Если Elixir это клей для Rust, то хули у них клея в сотни раз больше чем Rust-а. По твоей логике можно сказать что C в юзерспейсе это клей для системных вызовов, а операционная система это клей для драйверов, а драйвера это клей для ассемблера. Кароче, нихуя нормального по твоей логике не получается
>>3468461 >Discord переписывают два небольших алгоритма на Rust чисто для работы с мутабельной shared-memory и из-за этого все остальные 99.9% кода перестают быть Elixir-ом? Там переписали 2 ключевых для перформанса участка. Потому что вся эта концепция с отсутствием разделяемой памяти, работает на узком класс задач типа телекома. А в большинстве обычных задач разделяемая память нужна. Тебе уже правильно сказали, в этой задаче эликсир просто клей. При желании они могли бы питон использовать для этого.
Родной, ты вообще статью прочитал? Твои высеры никак к аргументу что 99.9% бэка у них на Elixir не относятся и ему не противоречат.
Переписали два алгоритма на раст и ускорили свою систему. И что дальше-то? О чём это говорит? О том что Rust компилируется в zero-runtime натив, а у Elixir есть рантайм? Нихуя себе, вот это ты мне глаза открыл ебать.
А дальше-то что? Какой вывод? Что Elixir клей? Ну, ебать, если систему где весь код на Elixir кроме 300 строк на Rust, ты классифицируешь как "Rust — ядро, а Elixir — клей", то о чём с тобой вообще говорить-то нахуй. Если так, то я вообще удивлён как ты на клавиатуре тогда по кнопочкам попадаешь
>>3468611 >Родной, ты вообще статью прочитал? Твои высеры никак к аргументу что 99.9% бэка у них на Elixir не относятся и ему не противоречат. Мудило! 99% это твоя больная фантазия, они пишут про >One big project У них вообще зоопарк языков https://github.com/orgs/discord/repositories?type=all от С++ до Скалы.
>Переписали два алгоритма на раст и ускорили свою систему. И что дальше-то? О чём это говорит? О том что Rust компилируется в zero-runtime натив, а у Elixir есть рантайм? Нихуя себе, вот это ты мне глаза открыл ебать. Дебил, ты бы прочел о чем там вообще пишут: >how we update the Member List Там личерали речь идёт о приложении которое обслуживает список пользователей в канале. Понятно, что структура которая хранит и управляет этим списком, это главное, что влияет на перформанс приложения, о чем собственно статья и говорит.
>А дальше-то что? Какой вывод? Эликсир нишевый продукт, который мало кому уперсы.
>о чём с тобой вообще говорить-то нахуй. Если так, то я вообще удивлён как ты на клавиатуре тогда по кнопочкам попадаешь Дебил удивляется, что с его тупым мнением не согласны. Только на двачах, без регистрации и СМС.
>>3468553 >Там переписали 2 ключевых для перформанса участка. Потому что вся эта концепция с отсутствием разделяемой памяти, работает на узком класс задач типа телекома. А в большинстве обычных задач разделяемая память нужна. Тебе уже правильно сказали, в этой задаче эликсир просто клей. При желании они могли бы питон использовать для этого. После такого градуса хуйни троль обычно отправляет в игнор. То есть тут настолько лютейшая хуета и некомпетентность в каждом предложении, что я даже не ебу, о чем разговор продолжается. Ладно если человек мало понимает в предмете и старается понять, но этот ведь даже не старается.
>>3468722 > Вы просто засираете тред своим спором.
Удваиваю, мне в целом похуй на мнение этого клоуна. Мне важно только чтобы у поверхностно читающих этот тредик не сложилось неправильное впечатление. Мы-то с тобой знаем детали языка и его использования и поэтому понимаем почему этот клоун не прав, а анон, который просто зайдёт про язычок почитать, деталей не знает и может реально клоуну поверить.
>>3468698 > зоопарк языков > 99% это твоя больная фантазия, они пишут про Сразу понятно что ты дальше своей жирной залупы нихуя не видишь. Большинство репок там это форки либ для фронтендов, для клиентских приложений.
> приложении которое обслуживает список пользователей в канале Не приложении, а структуре: OrderedSet, который списочек юзеров просто, и всё. Нихуя больше. Чисто структурка которая показывает всех юзеров в гильдии. Основной функционал приложения (войс, чаты) написаны на Elixir (не считая кодеков, которые как либы на C++)
> Эликсир нишевый продукт, который мало кому уперсы. Так тебя никто не заставляет им пользоваться. Не обижайся, но всем здесь на тебя абсолютно похуй. Да-да. Можешь пожаловаться маме, а потом рассказать ей ещё пару интересных фактов про языки программирования, которые ты сам придумал. Но реальность от этого не изменится. А состоит она в том, что Discord, Remote, WhatNot и кучи других компаний написали свои бэки на Elixir и теперь гребут ахуенные бабки, пока ты здесь с пеной у рта доказываешь что на Elixir нихуя нельзя нормально написать.
>>3468730 Ты какой-то максимально упоротый фанатик. Вангую в тебе студента, который прод не нюхал. Что толку обсуждать язык, на который ноль вакансий? Что толку тебе с того дискорда? Ты там не работаешь и никогда работать не будешь, ты не в США живешь, наркоман.
>>3468730 >Удваиваю, мне в целом похуй на мнение этого клоуна. Мне важно только чтобы у поверхностно читающих этот тредик не сложилось неправильное впечатление. Мы-то с тобой знаем детали языка и его использования и поэтому понимаем почему этот клоун не прав, а анон, который просто зайдёт про язычок почитать, деталей не знает и может реально клоуну поверить. Честно говоря, я плохо понимаю, почему случайному прохожему может по какой-то причине понравиться эрланг. Я помню, как очень много лет назад поинтересовался, что это за эрланг, на котором ejabberd написан, и пришел к решению — это какая-то странная хуйня, и наверное мне не нужная.
Мне ваш спор напомнил споры мимопроходилов с гуру про лисп, где гуру ловко разъебывали проходящих просто потому, что проходящие были очень плохо знакомы с лиспом. Что, однако, не сильно убеждало прохожего начать писать код из сплошных скобочек.
Даже сейчас, когда я в распределёнке вырос очень сильно, я не совсем уверен в том, что Erlang мне нужен. Встроенный оркестратор — это круто, но проблема разделяемого состояния не решена. Да, можно ответить как разрабы golang: "Don't communicate by sharing memory; instead, share memory by communicating" — но это лишь про другую крайность, а по-хорошему в системе всегда есть потребность в разделяемом состоянии.
И в том числе разрабам дискорда для оптимизиации нетипичного для BEAM способа хранения данных пришлось прибегнуть к помощи внешних инструментов (постгря+редис+кафка), хотя изначально для этого подразумевалось использование Mnesia или какого-то подобного воображаемого инструмента, родного к Erlang (DETS плюс хуй знает что). Тот же Discord категорически не применяет Mnesia, потому что она омерзитольно никак масштабируется.
Теперь внимание вопросы: если работоспособность всей системы зависит от того, не наебнётся ли шардированная постгря, то в чём особенная ценность деревьев супервизии? В чём ценность горячего апгрейда, если 90% ебли заключается в смене схемы постгри? Какая разница в том, какая доля системы сумела восстановиться, если по итогу система в целом неработоспособна, потому что постгря не включена в деревья супервизии?
Как вы понимаете, я уже задавал подобные вопросы нейросетке — она только всплакнула, сказала что-то про "жизнь — страдание, мы все умрём", и ушла в закат.
>>3469825 Эрланг интересен своей концепцией, на этом все. Писать код на акторах и шине событий пиздец как неудобно, вообще ничего не понятно. Вон в голанге сделали, как в эрланге, добавили ранге по каналу, никто этим не пользуется. Классический императивный код с мьютексами легко читать и понимать, в отличие от.
>>3469826 >Классический императивный код с мьютексами легко читать и понимать, в отличие от. И что ты предлагаешь? Делать Discord на базе одного сервера с node.js? Или у тебя есть какие-то волшебные мьютексы, которые живут сразу на нескольких серверах?
>>3469825 > проблема разделяемого состояния не решена
Это я не совсем понял. В Elixir можно коммуницировать как угодно. Хочешь посылай сообщение. Хочешь, сделай процесс, который будет держать состояние и ему будут мутации посылать (Agent). Хочешь, сделай большой shared KV на ets. Или даже shared граф на ets.
На моём опыте 99% задач (из веба) этими подходами покрываются. Если у тебя что-то очень экзотическое, то пиши NIF на языках где есть shared memory, к счастью в Elixir это не сложно делается, по сравнению с, например, Java.
> если работоспособность всей системы зависит от того, не наебнётся ли шардированная постгря, то в чём особенная ценность деревьев супервизии?
Погоди, а на каком языке можно написать сервер, который дёргает Postgres, чтобы он оставался работоспособным когда Postgres отъебнётся? Или какой язык программирования автоматически данные в постгре мигрирует?
Но в целом, анон, я понимаю откуда у тебя такие вопросы. У тебя просто изначально неправильное понимание того что такое Elixir. Elixir это не про то что у тебя один Elixir заменит и бэкенд, и базу данных, и редис, и кафку и вообще весь софт который есть.
Elixir это про то что у тебя есть очень простая система акторов, очень сильный многозадачный рантайм и очень много ограничений поверх всего этого, чтобы не выстрелить в ногу. И в этом и вся сила. 99% логики бэкенда в нормальном проекте находятся как раз в коде серверов которые эти постгри и кафки дёргают. И Elixir даёт тебе возможность делать эту логику с нормальной асинхронностью, многопоточностью и коммуникацией.
Если конкретнее, и с примерами, тебе на Elixir не нужны редисы, чтобы посылать информацию в соседний поток (как в PHP, например). Тебе и не нужно иметь Senior разраба за 300к/наносек, который будет в твоём мультитредовом говнокоде на мьютексах искать race-condition (как в C++). Тебе не нужен цветной async/await код (как в Python), где у каждой либы есть хуёвый asyncio-аналог, где работает только половина функционала. Ещё у тебя есть supervising и share-nothing из коробки, поэтому, чтобы изолировать ошибки и отключение различных деталей (не типа БД, а типа комнаты чата или подключения к какому-то сервисы, например), ты просто пишешь новый процесс, а не делаешь отдельный микросервис (как в Go). Как бонус, все ресурсы у тебя инициализруются супервизорами один раз и держутся в живом состоянии (пока это возможно), и тебе не надо писать хаки, чтобы они инициализировались не на каждый запрос (как в Ruby, PHP, Python).
Возвращаясь к твоим вопросам > Какая разница в том, какая доля системы сумела восстановиться, если по итогу система в целом неработоспособна, потому что постгря не включена в деревья супервизии? Постгрю никто и не запускает в супервизоре Elixir-а, но вот пулл соединений к базе будет как раз за супервизором. И вот тут как раз хорошо видно отличие Elixir от того же Go.
Если у меня бэк на Go, то отключение бд там, убьёт сервис и он будет лежать пока база не включится обратно, и только потом k8s рестартнет сервис на Go.
А если у меня бэк на Elixir, то у меня отключение бд убьёт пулл. И пулл попадёт в restart loop если ты не настроил так, чтобы падение пулла также за собой выключало application. За это время весь стейт, который был в системе, в ней и останется. Будут падать только те запросы, которые лезут в бд, а те, которые, например, попадают в кэш, не будут падать. Не упадёт также и chat room, который хранится, например не в постгре. Не упадёт также и какой-нибудь стрим, который уже запущен и с бд не взаимодействует. Это будет именно что graceful failure. Зачем? Это тупо сэкономленные деньги, потому что для юзеров половина сайта будет работать, а для половины будут крутиться спиннеры загрузки. В этот момент зритель не закроет твой сайт, чтобы открыть твитч и смотреть стрим там, в этот момент юзер не закроет чат с твоей ллм, чтобы написать в chatgpt, и т.д.
И я эту хуйню не придумал, а это реальная история из моего проекта с аукционами на стримах. У нас во время очень дорогого аука отлетел Elastic насмерть из-за индуса девопса сукка. Люди не могли посмотреть списки товаров на сайте вообще никак, даже название товара. Но при этом тот дорогой аук не прервался, и проект заработал кучу денег на комиссии с этого аука, потому что стримы и чатики никак эластик не трогали.
Так вот, чтобы сделать такой же graceful failure, гоферы либо обарабатывают ошибки в каждом месте где дёргают бд (покажите мне хоть один проект где вообще все ошибки от бд так обработаны), либо (что сильно чаще) пишут микросервисы, чтобы один микросервис обслуживал запросы к бд, другой микросервис обслуживал запросы к чатам, третий стримы крутил. В итоге они выносят эту сложность на уровень инфраструктуры, а это всегда дороже, потому что из-за этого больше разных CI/CD пайплайнов, надо делать апихи друг к другу, обновления микросервисов должны быть всегда независимыми и т.д.
Тогда как Elixir наоборот пытается всю такую сложность оставить внутри. Конечно, тебе всё равно нужен какой-то внешний супервизор для постгри, и миграции для базы данных тоже нужны. Но тебе не нужно делать микросервисный зоопарк чтобы ошибка в одной хуйне не выключала другую, совсем не связанную с первой, хуйню. Elixir в этом плане тупо выгоднее и проще.
>>3470483 Если ты про РФ, то да, сейчас Elixir-а практически нет, раньше было больше, но что-то случилось. Был ещё довольно активный рыночек вакансий в Украине, но тоже что-то случилось с ним.
В ЕС и США есть нормальное количество ваканский, в основном удалённая работа, и их в целом достаточно. То есть ваканский меньше чем на Python и Java, например, но и разработчиков не очень много, поэтому я думаю в целом отношение соискатели/вакансии такое же как и в других языках, и найти работу не сложнее чем на них.
Если ты не знаешь английский и не согласен работать удалённо, то я плохо понимаю нахуя ты в айти вообще забыл
>>3470501 Подскажи тогда книги/курсы для вката новичку, пожалуйста. Заебался быть SQL аналитиком, а в пиздон идти желания ещё меньше. Английский средний, могу общаться на бытовом уровне.
>>3470650 > Без ворк пермита идешь нахуй. > Без американского паспорта идешь нахуй.
Я понимаю почему ты ошибаешься. На уроках обществознания тебе пока что не рассказали про то что такое ИП, как его открыть в соседней стране по интернету и как октрыть валютный счёт для своего бизнеса. Отношусь к тебе с пониманием, ты просто не знал про это, ведь в пятом классе про это ещё пока не рассказали.
Есть курс от Алексея Матюшкина, я слышал про него хорошие отзывы, но слышал и плохие (не о курсе, а лично об Алексее), так что решай сам. https://thinknetica.com/pro/elixir_phoenix
Из книжек есть Elixir in Action, Programming Elixir и т.д. Они все незначительно отстают от актуальных версий языка и библиотек, но это не проблема.
Но в 2025 году я могу советовать учить язык только так: открыть редактор кода, доку по elixir (hexdocs.pm/elixir), какой-нибудь чатик или слак по Elixir, и рядом LLM типа chatgpt и начать писать свой проект. Если не знаешь что делать, пишешь сначала в LLM типа "как начать писать проект на Elixir". Если ответ хуйня, пишешь в чатик. Каждый из ответов сверяешь по доке эликсира. Через недельку у тебя должен быть нормальный и рабочий проект.
Но помни, что Elixir это не язык для вката. Здесь очень мало джуновских и интерновских вакансий. Лучше всего будет выучить немного Python/JavaScript, попердеть в стул 1-2 года на работе до того как станешь Middle, а потом подучить Elixir. Пересаживаться с Python и JS на Elixir имеет смысл из-за ЗП (средняя больше в 1.5-2 раза) и из-за ментального здоровья, потому что Python и JS это объективный кал
>>3470733 Проиграл в голос с этого дурачка. Еще раз, медленно, специально для тупых пориджей: без ворк пермита никому ты нахуй там не нуженю Литерали. Свое ИП можешь засунуть в свою тугую задницу. Даже сербы-братушки требуют перекат в течение месяца, всякие бриташки и голашки твое резюме вообще не откроют.
> Расскажи если не трудно что за ворк пермит, как его получить и насколько это тяжело при нынешней ситуации?
Не слушай этого долбоёба, он с самого начала треда пишет сюда какую-то выдуманную хуйню.
Про ворк пермит. То есть разрешение на работу. Оно нужно только если ты устраиваешься в иностранную компанию как сотрудник. Тебе тогда дают рабочую визу и ты можешь переехать в страну где у компании офис. В 2025 году так делают только бигтехи, а компании поменьше нанимают только контрактников, потому что для них это тупо сильно дешевле.
Чтобы стать контрактником, тебе нужно иметь открытый бизнес не в РФ и валютный счёт на который можно получать деньги. Всё это делается за один день в Грузии, Казахстане или Армении (я так делал). В Сербии тоже можно это сделать, но нужен месяц или около того. Для всего этого нужен загран. И ещё есть какие-то сервисы которые это удалённо делают, но я тут не подскажу конкретные.
Потом ты просто устраиваешься как на любую работу в ЕС, и просишь оформить тебя по b2b как контрактника, потом присылаешь им свидетельство о регистрации ИП, номер валютного счёта. Подписываешь контракт и, поздравляю, ты работаешь удалённо на фирму в ЕС. Раз месяц/две недели/неделю ты отправляешь фирме инвойс и они тебе по нему платят на валютный счёт.
Я работаю таким образом уже 5 лет где-то. Полёт нормальный.
>>3471284 Долбоеб тут только ты. Ты сравниваешь рынок пять лет назад и сейчас. Сейчас тебя никто не возьмет на B2B, литерали никто. Будут год искать, занесут кучу бабла агенствам, в итоге возьмут чурку с местным аусвайсом. Рынок труда пошел по пизде, пока ты сидел в своем манямирке, дебил блять.
>>3471367 Да-да, понял тебя, продолжай наблюдение. Нам очень интересно. Я пока ещё инвойсик отправлю.
>>3471370 Я пробовал, но это сложнее чем удалёнку. Мне в компаниях открыто говорят, что релокация это просто куча бюрократической душки для них и они думают что им нужен юрист для этого (я-то знаю что это не так, но они почему-то так считают), и ещё им налогов больше платить и т.д. Поэтому на 10 вакансий с удалёнкой я нахожу лишь одну с релокейтом, и там на интервью на меня криво смотрят из-за паспорта. Кароче, после ковида всё стало удалённым, а после 2022 это ещё и сложнее стало конкретно для тех кто из РФ
>>3470450 >Погоди, а на каком языке можно написать сервер, который дёргает Postgres, чтобы он оставался работоспособным когда Postgres отъебнётся? Или какой язык программирования автоматически данные в постгре мигрирует? При всей адовой дроче на распределённость, уровень развития распределённых вычислений в индустрии очень грустный. То есть, готовые решения есть только для узких ниш, для других ниш решения нужно собирать из кирпичей из клея, а в третьих лепить почти с нуля. Я застал ещё те времена, когда в постгре вообще не было встроенной потоковой репликации, репликацию делали на логическом уровне, повторяя SQL запросы на нескольких серверах, или же копируя WAL по SSH. Между прочим, Facebook до сих пор использует похожую модель (но давай лучше не будем про Facebook, потому что меня сейчас понесёт).
Такая организация логична, то есть, иерархия железо => машина из железа => сеть из машин. Индустрия уже очень давно делает вещь, которая ебанутая по своей сути: иммитирует работу примитивного железа при помощи машины, а когда не хватает всей машины — при помощи сети из машин. То есть, телега впереди лошади, жесткий диск из кластера машин, оперативная память из баз данных.
Да, это попытка упростить решение, свести сложную задачу к набору известных простых задач, но эти же "простые задачи" создают настолько много проблем, что нужен целый гугл или яндекс для эффективного их решения. Более того, ни гуглу, ни яндексу в хуй не упёрлось создание простого фреймворка организации сложных систем, потому что если завтра каждый васян создаст свою масштабируемую систему без AWS/GCP/Azure/Yandex Cloud, то все эти параши останутся без главного источника заработка. Я неоднократно наблюдал чудовищное переусложнение продуктов в таких корпорациях "потому что мы можем".
Erlang/BEAM уже частично пытались решить подобную задачу — это, как я указал, DETS, который организует локальное хранилище на одном узле, а координацию между узлами нужно писать ручками. Хочешь пиши шарды, хочешь — какую-нибудь иерархию. Другое дело, что какого-то готового фреймворка (по крайней мере публичного) для надёжной организации координации таких хранилищ нет.
>Elixir это не про то что у тебя один Elixir заменит и бэкенд, и базу данных, и редис, и кафку и вообще весь софт который есть. Да ради бога, используй внешнюю БД. Другое дело, что вот для персистентности лога мне чо использовать в Elixir? Eventstore? Которое опять на той же постгре в качестве бэка работает. Неужели нет в мире других СУБД, кроме постгри? Обычно микросервисные доходят до маразма и гоняют десяток разношерстных БД, хотя бы ту же постгрю нескольких версий, чтобы когда одна отъебнулась — остальные работают.
>Если у меня бэк на Go, то отключение бд там, убьёт сервис и он будет лежать пока база не включится обратно, и только потом k8s рестартнет сервис на Go.... >Будут падать только те запросы, которые лезут в бд, а те, которые, например, попадают в кэш, не будут падать. Не упадёт также и chat room, который хранится, например не в постгре. Не упадёт также и какой-нибудь стрим, который уже запущен и с бд не взаимодействует. Не поверишь — ту же самую историю мне рассказывали не так давно, только про микросервисы. "Частичный отказ, незатронутые сервисы продолжают работать, бла-бла-бла...".
>99% логики бэкенда в нормальном проекте находятся как раз в коде серверов которые эти постгри и кафки дёргают. Из этих 99% (на самом деле порядка 60% в случае того же Discord, остальное выполняется в Kafka, Redis, PostgreSQL, etc) где-то половина выполняет клеевую функцию, то есть, адаптирует одну модель к другой, обрабатывает вебсокеты, доступ к БД, сериализацию. Довольно часто делают это неоправдано сложно, просто чтобы адаптироваться к стороннему сервису, разработанному не нами и не под наши задачи. Справедливости ради, микросервиснутые нынче вообще ебанулись на отличненько и у них доля клея в коде может доходить до 90-95%, по сути они кроме парсинга и генерации JSON (или имянейм протокола) ничего не делают.
>В итоге они выносят эту сложность на уровень инфраструктуры, а это всегда дороже, потому что из-за этого больше разных CI/CD пайплайнов, надо делать апихи друг к другу, обновления микросервисов должны быть всегда независимыми и т.д. >Тогда как Elixir наоборот пытается всю такую сложность оставить внутри. Конечно, тебе всё равно нужен какой-то внешний супервизор для постгри, и миграции для базы данных тоже нужны. Но тебе не нужно делать микросервисный зоопарк чтобы ошибка в одной хуйне не выключала другую, совсем не связанную с первой, хуйню. Elixir в этом плане тупо выгоднее и проще. У гугля все сервисы по сути представляют собой огромный монолит в монорепе, где изменение API делается одним коммитом сразу в кучу сервисов, а само API сделано в виде синхронных вызовов на Stubby/protobuf. То есть, всё связывание сервисов происходит на этапе компиляции и связывается напрямую один сервис с другим, без посредников, без кафок и постгрей. Заметь, что сервисы написаны на разных языках программирования, но по итогу работают как единая система. Если какому-то сервису нужна персистентность — зачастую он единолично взаимодействует с БД, заключая в себе сложность работы со схемой.
Иронично, что уже есть опенсорсные аналоги внутренних инструментов гугла (Borg => Kubernetes, Stubby => gRPC), но почему-то микросервиснутые используют их IRL предельно через жопу, со всякими там Rabbit/Kafka на каждый чих без типизации/версионирования пересылаемых сообщений и без способов отладить проблемы с обработкой этих сообщений, когда продьюсер уже давно съебался, а консюмеры до сих пор не могут понять, откуда эти сообщения высрались и что с ними делать.
>Тебе и не нужно иметь Senior разраба за 300к/наносек, который будет в твоём мультитредовом говнокоде на мьютексах искать race-condition (как в C++). Мне не нужно его искать — я он и есть, лол.
Кстати это полный кал, никому не советую его использовать. Запись туда не durable, не атомарна и ещё и можно проебать запись потому что оно пишется сначала в кэш
> Другое дело, что вот для персистентности лога мне чо использовать в Elixir?
Какого лога? Если у тебя лог событий типа как в EventSourcing/CommandSourcing, то бери тот же тул/сервис что и на другом языке, лол. Ещё есть Commanded, который обёртка для постгри. Если у тебя лог как лог, то пиши туда, куда бы и на другом языке писал: хочешь в файл, хочешь в базу, да куда хочешь кароче.
> То есть, всё связывание сервисов происходит на этапе компиляции и связывается напрямую один сервис с другим, без посредников, без кафок и постгрей
Не понял к чему это. И остальные твои мысли тоже не особо с моим постом связал.
Вообще в целом твой пост какой-то как будто ты свою телегу какую-то пишешь и к моему посту она слабо относится, как и вообще к Elixir. Причём тут редисы, кафки, постгри и вся хуйня, какие ещё гуглы и фейсбуки...
>>3470450 > Погоди, а на каком языке можно написать сервер, который дёргает Postgres, чтобы он оставался работоспособным когда Postgres отъебнётся? На любом. Хоть на ноде пишешь, там же пишешь демон который стартуют монолит если он разъебался. > Elixir это про то что у тебя есть очень простая система акторов, очень сильный многозадачный рантайм > Если конкретнее, и с примерами, тебе на Elixir не нужны редисы, Всё это нахуй не нужно, если есть нормальная БД которая поддерживает ACID и несколько процессов. Сервер просто пишет в БД с нескольких процессов и всё. Всё, больше ничего не нужно. Без всяких шуток. Ни эликсир не нужен, ни кафка. Даже редис и прочие кэш-калы не нужны, потому что БД может постоянно в памяти висеть, ибо так работают современные ОС.
>>3472478 Кафка нужна, чтобы быстро-быстро собирать инфу с дохуилиона датчиков в реальном времени. Запись в кафку быстрее, чем в бд, и она умеет раскидывать нагрузку по серверам. Например, у тебя йоба завод, который надо мониторить 24 на 7. Или у тебя сервис типа яндекс пробки, надо собирать координаты с навигаторов и рассчитывать скорость движения. Еще кафку используют для внутренней диспетчеризации по шардам, когда наружу торчит одна ручка, а внутри запись идет на разные шарды, прозрачно для пользователя. Редис - это тупо кеш. Из него читать быстрее, чем из бд. Можно сделать систему чисто на одной бд, но тогда твой сервер просто выдержит меньше рпс. Другой вопрос: а будет ли у говносайта говнопиццы столько рпс, чтобы понадобилась кафка.
>>3472550 > собирать инфу с дохуилиона датчиков в реальном времени. > Запись в кафку быстрее, чем в бд, и она И она может внезапно упасть. Если твоя задача проебать данные - можешь смело заниматься этим. > Или у тебя сервис типа яндекс пробки Вот тут да, можно через прокси, ибо проёб данных не страшен, а согласованность данных не особо важна. > Редис - это тупо кеш. Из него читать быстрее, чем из бд. Нет, так же как и из БД, если брать БД достаточно производительные - чтение даже быстрее чем в редисе. > Можно сделать систему чисто на одной бд, но тогда твой сервер просто выдержит меньше рпс. CRDT, шарды и пакетная обработка решают эту проблему. Офк, всё зависит от того какая БД используется.
>>3472578 > И она может внезапно упасть. Если твоя задача проебать данные - можешь смело заниматься этим.
О, ты вернулся в тредик, долбоёб. Я думал уже всё, забыл. Я уже почти соскучился. В любом случае, специально для тебя поясню: кафка персистентная, то есть она записывает на диск данные, когда их в неё посылают (посылка наебнётся, если на диск не запишется). А данные на диске остаются, даже если компьютер выключить из розетки. Ещё кафка эти данные реплицирует между мастерами, так что падение одного мастера ухудшит перформанс, но не наебнёт кластер. Откуда ты хуйню про проёб данных придумал, мне сложно представить.
> БД достаточно производительные - чтение даже быстрее чем в редисе.
А когда ты сам придумываешь факты, и ими разъебываешь в тредиках, ты, наверное, себя потом за сосочки трогаешь и думаешь: "Какой же умный, какой же я ахуенный", да? Откуда ты это взял? То что у баз есть кэш? Так этот кэш ограниченный и не по всем таблицам и всем ключам. И что за база? Например Postgres при апдейте данных в таблице не удаляет старые и их надо отдельно вакуумить, поэтому при частом апдейте по ключу перформанс ухудшается. Далее, кэш работает с TTL обычно, в базах нет встроенных TTL, это можно сделать ручками, но это будет кал. Далее, SQL базы ещё парсят запросы, строят планы (во время этого они иногда в рандомные места таблицы лезут) и т.д., тогда как Redis просто парсит строку "GET <KEY>" в TCP пакете и сразу лезет в дерево поиска.
>>3472923 > О, ты вернулся в тредик, долбоёб. Я думал уже всё, забыл. Я уже почти соскучился. Тебе так нравится когда тебя обоссывают? Хорошо, сейчас опять обоссу, приготовься.
> Откуда ты хуйню про проёб данных придумал, мне сложно представить. Конечно сложно, ты же даунёнок который не в курсе про технологии за которые ты кукарекаешь.
Смотри, внимательно. Кафка поддерижвает ACID? Нет? Данные проебались. Понимаю, тебе сложно такое вообразить, видимо ты никогда не работал, только на двачке пиздишь, лолд
> А когда ты сам придумываешь факты, и ими разъебываешь в тредиках, ты, наверное, себя потом за сосочки трогаешь и думаешь: "Какой же умный, какой же я ахуенный", да? Да. Как ты узнал? Мне нравится унижать и представлять как ты потными ручками стучишь по клавишам, пытаясь оспорить реальность.
> Откуда ты это взял? То что у баз есть кэш? Так этот кэш ограниченный и не по всем таблицам и всем ключам. Файловые системы так работают - помещают часть файла с диска в озу. Не знал? Конечно не знал, откуда тебе такое знать.
> Postgres > SQL > тогда как Redis просто парсит строку "GET <KEY>" в TCP пакете и сразу лезет в дерево поиска. Вместо прямого запроса к БД у тебя куча прокладок, кафок, редисов которые один и тот же запрос пересылают друг-другу. Какое же ты говноедище, боже. И часто у вас так в ерланг-манямирке происходит?
Какой нахуй ACID, долбоёб. ACID применим к мутабельным транзакциям, а кафка это просто лог, и операция "записать в конец лога" там Durable, то есть не проёбывается, даунище.
> Файловые системы так работают - помещают часть файла с диска в озу. Не знал? Конечно не знал, откуда тебе такое знать.
И что дальше? Дело даже не в диске, пусть у меня вообще всё в памяти, дело в том что индекс и сами страницы нужно ещё сериализовывать, тогда как в редисе данные просто лежать в дереве, которое состоит из прямых ссылок в память. И ещё редис не занимается парсингом SQL, построением плана, валидацией данных и прочим.
> Вместо прямого запроса к БД у тебя куча прокладок, кафок, редисов которые один и тот же запрос пересылают
Какая жалкая попытка подменить тезис, пиздос. Мог бы получше постараться. Мы тут обсуждаем не то как надо архитектурно все эти решения использовать, а ту хуйню которую ты спизданул что "в бд чтение даже быстрее чем в редисе". И по этой хуйне у тебя тупо нет аргументов
>>3473223 > Какой нахуй ACID, долбоёб. ACID применим к мутабельным транзакциям, а кафка это просто лог, и операция "записать в конец лога" там Durable, то есть не проёбывается, даунище. Об этом и речь, даунёнок, ты не можешь зафиксировать данные в простом логе. Сообщения могут дублироваться, проёбываться, да что угодно может случиться.
> И что дальше? И то что производительность ОС + нормальной бд лучше редиса кафки и той шизофрении которую тебе в мозг говноеды заложили.
> Дело даже не в диске, пусть у меня вообще всё в памяти, дело в том что индекс и сами страницы нужно ещё сериализовывать, тогда как в редисе данные просто лежать в дереве, которое состоит из прямых ссылок в память. Всё в порядке, в нормальных БД это такие же ссылки в память. Просто ты говна поел с редисом, кафкой и скулем, вот и не знаешь нормальных технологий.
> Мы тут обсуждаем не то как надо архитектурно все эти решения использовать, а ту хуйню которую ты спизданул что "в бд чтение даже быстрее чем в редисе". И по этой хуйне у тебя тупо нет аргументов Зачем тут аргументы если это эмпирический факт?
>>3473677 > Об этом и речь, даунёнок, ты не можешь зафиксировать данные в простом логе. Сообщения могут дублироваться, проёбываться, да что угодно может случиться.
Что ты вообще несёшь? Что значит "зафиксировать"? Я дёргаю апи метод append и если он завершился без ошибки, то эвент записался в лог. С этого момента он не проёбывается, потому что лежит на диске. Если я его дёрну ещё раз, то запись не дублируется, потому что есть ключ индемпотентности у сообщения. Какой же ты узколобый дебил, ей богу
> И то что производительность ОС + нормальной бд лучше редиса кафки и той шизофрении которую тебе в мозг говноеды заложили.
Так ты это запруфай, еблан. Покажи бенчмарк или что-то такое. Но ты не покажешь, потому что если ты сделаешь бенчмарк, то ты увидишь что чтение из Redis по ключу быстрее чем из Postgres (даже если тот запущен в tmpfs)
>>3473859 > Что ты вообще несёшь? Что значит "зафиксировать"? Я дёргаю апи метод append и если он завершился без ошибки, то эвент записался в лог. Пиздец манямирок у долбоёба. И это он пишет в элексиротреде! То что что-то завершилось не значит что данные не проебались, ты понимаешь это? Хотя ладно, очевидно что ты нихуя не понимаешь. > Если я его дёрну ещё раз, то запись не дублируется, потому что есть ключ индемпотентности у сообщения. Буквально на любом этапе передачи сообщения может возникнуть сбой. Т.к. там есть кафка которая может менять лидера и проебывать лог - клиент поймает таймаут, отправит сообщение ещё раз и что ты там не фантазируй будет дублирование. И это ещё самый простой сценарий, который можно отловить и ограничить, в реальности всё будет куда хуже. У тебя несколько сервисов которые не имеют прямой согласованности между собой, всё через пизду твоей мёртвой мамаши организовано, ты осознаёшь это? Гарантии на стороне кафки не равны гарантии стороне БД, а значит сообщения будут проёбываться. > Так ты это запруфай, еблан. Покажи бенчмарк или что-то такое. Нахуй мне палить говноедам годноту. Страдай и жри говно. > Но ты не покажешь, потому что если ты сделаешь бенчмарк, то ты увидишь что чтение из Redis по ключу быстрее чем из Postgres (даже если тот запущен в tmpfs) Нормальная бд это не постгрес, говноедище. > Открываем статью где сравнивают перформанс редиса и постгри на чтение и запись по ключу и смотрим что постгрес сосёт: Конечно сосёт, ведь это технологии даунов. И не забывай даунёнок, ты сначала должен данные отправить в свою говнобд, потом закэшировать запрос в редисе, отправить в кафку которая распределит по репликам, ору нах! В то время как я записываю данные на диск быстрее чем постгресс раза в три, читаю данные быстрее чем редис в два раза и в 20 раз быстрее чем постгресс, а клиенты пишут и читают напрямую в реплики, без всяких кафок, данные проебаться не могут в принципе. > Кароче, иди нахуй, добоёбище. Обратно в питонотред или откуда ты там вылез Короче ты поспорил сам с собой. Ещё бы, ведь спорить с реальность тебе сложно, в ней ты всеми обоссаный дерьмоед с архитектурой которая создана для потери данных.
>>3473899 > нееет, это не я обоссаная чмоня которая рассказывает про говноедский стек, это ты!11 Вот это защитная реакция пошла, лол
>>3473944 >ты сначала должен данные отправить в свою говнобд, потом закэшировать запрос в редисе, отправить в кафку которая распределит по репликам, ору нах! В то время как я записываю данные на диск быстрее чем постгресс раза в три, читаю данные быстрее чем редис в два раза и в 20 раз быстрее чем постгресс, а клиенты пишут и читают напрямую в реплики, без всяких кафок, данные проебаться не могут в принципе. Лол, он же реально шизик.
> Написал хуйню, без пруфов и аргументов > Нахуй мне палить говноедам годноту.
Мне к этому нечего добавить, жаль тебя, я не понимаю нахуя ты в тред какую-то хуйню пишешь. Я уже начал думать что ты реально страдаешь чем-то вроде слабоумия или какого-то другого синдрома, где больные хуйню несут неконтроллируемо.
UPD: Бля, если ты скажешь Oracle, я обоссусь от смеха, дедуля
> То что что-то завершилось не значит что данные не проебались
Блять ну вот как тебе объяснить, что я посылаю апи запрос, кафка пишет сообщение на диск и только после этого посылает ответ. Если я получил ответ, то сообщение на диске, ты это-то понимаешь той хуйнёй, что вот чуть-чуть выше дырочки на голове, куда ты свой кал кладёшь пожевать? Куда оно с диска проебётся?
> клиент поймает таймаут, отправит сообщение ещё раз и что ты там не фантазируй будет дублирование
Вот же дегенерат. Это к твоей ахуенной маня-БД применимо, а к кафке нет, потому что там есть ключ идемпотентности. Ты не знаешь про такую технологию, поэтому я поясню. Когда я посылаю сообщение на запись, я рядом с ним посылаю уникальный номер. Кафка этот номер тоже записывает на какое-то время, поэтому когда я ретрайну запись, я ретрайну её с этим же номером и кафка быстро проверит, дубликат это записи или нет.
> ты сначала должен данные отправить в свою говнобд, потом закэшировать запрос в редисе, отправить в кафку которая распределит по репликам
Вот точно есть какое-то заболевание. Сначала сам спизданул какую-то хуйню, его поставили на место, ведь аргументов ноль. Поэтому он потом спизданул другую хуйню, уже за оппонента, и третьей хуйнёй успешно разъебал. В итоге весь тред в ахуе сидит с больного, который сам с собой срётся
>>3474258 > Мне к этому нечего добавить, жаль тебя, я не понимаю нахуя ты в тред какую-то хуйню пишешь. Я уже начал думать что ты реально страдаешь чем-то вроде слабоумия или какого-то другого синдрома, где больные хуйню несут неконтроллируемо. Неприятно, обоссанец? Конечно тебе неприятно, ведь вместо нормальных технологий ты переваренный кал хуячишь.
> дедуля Хм, а ведь анон был прав, что ты студент который ни дня не работал, только фантазируешь в этом итт треде, лол
> Блять ну вот как тебе объяснить, что я посылаю апи запрос, кафка пишет сообщение на диск и только после этого посылает ответ. Что ты несешь, даун? Кафка пишет сообщения во все реплики, которые в любой момент времени могут отвалиться и сообщение потеряется. Если реплик нет, то проёб кафки - проёб всего.
> Если я получил ответ, то сообщение на диске, ты это-то понимаешь той хуйнёй, что вот чуть-чуть выше дырочки на голове, куда ты свой кал кладёшь пожевать? Куда оно с диска проебётся? Ахахах, ты же даже не понимаешь что сообщение может проебаться при смене лидера. Какой же даун, нахуй ты вообще в эликсир полез, если думаешь что сообщение на диске это гарантия?
> Вот же дегенерат. Это к твоей ахуенной маня-БД применимо, а к кафке нет, В моей охуенной БД есть ACID, в отличии от кафки которая даже на диск не может записать и не проебаться.
> Когда я посылаю сообщение на запись, я рядом с ним посылаю уникальный номер. Кафка этот номер тоже записывает на какое-то время, поэтому когда я ретрайну запись, я ретрайну её с этим же номером и кафка быстро проверит, дубликат это записи или нет. А потом кафка отрубается и ты теряешь все записи нахуй, повезёт если за 3 минуты. Молодец, даун, опять нафантазировал обосранную хуету.
> Вот точно есть какое-то заболевание. Сначала сам спизданул какую-то хуйню, его поставили на место, ведь аргументов ноль. Кого ты поставил на место, обоссанец? С твоими знаниями ты можешь только себя поставить на место петуха возле параши, там место опущенцев которые вместо программирования баззворды хуячат и создают дерьмище с редисами, постгресами и кафками.
А, ну больше и нечего добавить, я вот чувствовал что по ту сторону сидит безумный свидетель оракла. Да-да, очень важно услышать ваше мнение, продолжайте
> пишет сообщения во все реплики
Если ты реально думаешь что там настолько тупая репликация, то ты реально конченный дебил.
> сообщение может проебаться при смене лидера
Сообщение не может проебаться при смене лидера, лол. Как она по-твоему происходит?
Я кажется понимаю в чём проблема: мы говорим о разных кафках. Я говорю про Apache Kafka, которой пользуется весь мир: с идемпотентностью, с reliable replication, с записью на диск. А ты говоришь про кафку, которую сам придумал, где просто веером рассылаются сообщения по кластеру и т.д.
Кароче, я не хочу тебя обижать сильно, ведь сразу видно что у тебя не в порядке с умом что-то, поэтому скажу что ты во всём-всём-всём прав. Твоя кафка теряет сообщения, твоя кафка не умеет реплицироваться, твоя кафка не умеет в мастер-мастер репликацию. И мне очень повезло, что твоя кафка существует только у тебя в манямирке. В том самом манямирке, где оракл бд в 20 раз быстрее редиса, и заменяет весь софт на свете. В этом прекрасном мире нет болезней, нет голода, нет войн. Оракл в этом мире стоит каменным обелиском и своим взором заменяет весь софт на оракл, и не только софт. Всё есть оракл, я есть оракл, ты есть оракл. И даже небо, даже Аллах...
>>3474313 >А, ну больше и нечего добавить, я вот чувствовал что по ту сторону сидит безумный свидетель оракла. Да-да, очень важно услышать ваше мнение, продолжайте Пиздец фантазёр, уже придумал про меня целую историю как я дерьмищем типо оракла пользуюсь, лолд
> Если ты реально думаешь что там настолько тупая репликация, то ты реально конченный дебил. И это всё что ты смог высрать? Как жалко.
> Сообщение не может проебаться при смене лидера, лол. Вот это малютка совсем зафантазировался совсем!
> Как она по-твоему происходит? Из-за того что кафка и БД это две разных системы, дебил, смена лидера может возникнуть после успешной отправки старого лидера, хотя данные закомитились в БД или отправлены дальше.
И ведь это речь идёт про идеальный случай, с ask=all и прочим дерьмом в сообщениях, когда кластер работает как обосранный слоупок, все окна минимальны или соответствуют одному сообщению.
> Я кажется понимаю в чём проблема: мы говорим о разных кафках. Я говорю про Apache Kafka, Ты говоришь про кафку которая волшебным образом сохраняет сообщение, через веру в магические дегенеративные маняфантазии. Что поделать, если ты малолетний дегенерат который не понимает в принципе как устроена сети и кафка, откуда тебе знать что каждое падение может исказить всю инфраструктуру.
> Из-за того что кафка и БД это две разных системы, дебил, смена лидера может возникнуть после успешной отправки старого лидера, хотя данные закомитились в БД или отправлены дальше.
Причём тут БД, еблан. Я про кафку пишу. Смена лидера там происходит через Raft-консенсус. То есть чтобы он не завершился за конечное время, надо быть очень невезучим. А пока происходит leader election, данные не теряются, потому что запись зависает. Даже если leader election начнётся во время записи, моя операция записи либо наебнётся и вернёт ошибку, либо завершится успешно с записью в лидере и репликах.
> ask=all
Ну вот и всё что нужно знать про твой уровень знаний. То есть ты сам признаёшь что ты обосрался. С acks=all у меня гарантия от каждой реплики что запись произошла. То есть если лидер умрёт после такой записи или реплика умрёт, но останется кворум, у меня не проебутся данные. И как бы ты не пиздел, кластер от этого не становится медленнее. Увеличивается латенси одной операции записи, но throughput не меняется, потому что ack с реплик это практически бесплатно. Если тебе нужен низкий латенси, то тебе изначально не в кафку.
>>3474531 > Причём тут БД, еблан. Я про кафку пишу. У тебя кафка существует в отдельном манямирке без транзакций?
> Ну вот и всё что нужно знать про твой уровень знаний. То есть ты сам признаёшь что ты обосрался. С acks=all у меня гарантия от каждой реплики что запись произошла. Нет, потому что существует параметр с максимальными репликами, я не помню как он называется, ну да и похуй. Он вроде бы работает как раз с аскалл. А может и нет, я нихуя не помню, последний раз кафку трогал лет 10 назад. Если топология говна, то часть реплик внезапно отваливается и отваливаются как раз по этому разделу, данные либо проёбываются полностью, либо нахуй вся сеть недоступна становится. Кластер говна, гениальное решение.
> Если тебе нужен низкий латенси, то тебе изначально не в кафку. Мне нужен менее говноедский стек, чтобы я не городил кафку через редис через постгресс, была вечная доступность и конечная согласованность. Собственно, я его уже давно составил и работаю с ним, правда CRDT приходится писать вручную, да и похуй, потом перепишу код бд для кластера.
>>3474340 Это у шизика случилось обострение. Бери попкорн, будет весело. Я лично проиграл, когда он начал задвигать, как в его волшебной субд (кстати где она) данные из памяти читаются в два раза быстрее. Ждем новых откровений от мастера.
> У тебя кафка существует в отдельном манямирке без транзакций?
Я вообще о транзакциях ни слова не говорил. Ты сказал что кафка проёбывает данные если их в неё просто писать. Ни слова про транзакции. Вот я запруфал что это нихуя не так. Как и то что дубликаты будут, я тоже запруфал что это нихуя не так.
> Если топология говна, то часть реплик внезапно отваливается и отваливаются как раз по этому разделу, данные либо проёбываются полностью, либо нахуй вся сеть недоступна становится.
Нихуя не понял что ты сейчас написал. Какая топология? Как падение кафок за собой сеть кладёт? Какому разделу? Что ты вообще несёшь?
> Мне нужен менее говноедский стек, чтобы я не городил кафку через редис через постгресс
Блять ну я тебе уже в третий раз поясняю, что мне поебать на твоё мнение про стек и архитектуры и прочий кал. Я спорю только с двумя утверждениями "кафка проёбывает данные в любой конфигурации" и "существует какая-то SQL-манябд, где чтение по ключу в два раза быстрее чем из Redis".
По кафке я тебя уже разъебал, аргументов у тебя нет. По редису ты слился, потому что говоришь про вооброжаему манябд. Кароче, идёшь нахуй по всем параметрам, как я уже сказал, обратно в питонотред или в дом престарелых или откуда ты там вылез.
>>3474617 Понимаю, ты слишком слаб разумом чтобы это принять. Но поверь мне, я действительно читаю данные в два раза быстрее редиса. Линейная зависимость. Тут нет никакой магии, которая существует в твоей тупой бошке.
Всё дело в том, что у меня нет посторонних данных в запросе. У тебя же, при каждом запросе, запрос переполнен бессмысленной и бесполезной информацией.
>>3474649 > Я вообще о транзакциях ни слова не говорил. Ты сказал что кафка проёбывает данные если их в неё просто писать. В принципе да, если не делать аск=алл, и редко кто это будет делать потому что это не эффективно.
> Нихуя не понял что ты сейчас написал. Какая топология? Сетевая, очевидно. При настройках которые обеспечивают высокую доступность разные потребители и производители могут оказаться с разных сторон сетевого раздела и начать проёбывать данные, например из-за нарушений последовательности.
> Как падение кафок за собой сеть кладёт? Какому разделу? Что ты вообще несёшь? Если IPS меньше минимальных реплик, то кластер начнёт выдавать исключения, дебил.
> Блять ну я тебе уже в третий раз поясняю, что мне поебать на твоё мнение про стек и архитектуры и прочий кал. Я спорю только с двумя утверждениями "кафка проёбывает данные в любой конфигурации" и "существует какая-то SQL-манябд, где чтение по ключу в два раза быстрее чем из Redis". Т.е. ты споришь сам с собой? Продолжай, буду наблюдать за твоей клоунадой.
> По кафке я тебя уже разъебал, аргументов у тебя нет. Разъебал ты тут только свою сраку, разорвавшись на весь тред. Забавно вышло, лол
>>3474752 >Но поверь мне, я действительно читаю данные в два раза быстрее редиса. То есть, ты читаешь из памяти в два раза быстрее, чем это делает контроллер памяти? Такая-то шизомагия!
>Всё дело в том, что у меня нет посторонних данных в запросе. У тебя же, при каждом запросе, запрос переполнен бессмысленной и бесполезной информацией. У меня есть ключ, по которому я получаю значение из редиса. Что из этого является бесполезной информацией, шиз?
>>3474784 И что и чего. Главное что всё это говнище для дегенератов застрявших в 2012 году.
>>3474941 >То есть, ты читаешь из памяти в два раза быстрее, чем это делает контроллер памяти? Такая-то шизомагия! Нет, я читаю в два раза быстрее потому что у меня в два раза меньше данных, дегенерат.
>У меня есть ключ, по которому я получаю значение из редиса. Что из этого является бесполезной информацией, шиз? Значит про кафку и sql ты решил моментально забыть? Удобно для обоссаного петушка с фантазиями про отсталый стек - забывать неприятное.
>>3475040 Итак мы выяснили, что шизомагия делает данные вдвое меньше. Продолжаем наблюдение на пациентом. По кафе я тебе обоссу завтра, сегодня ты получаешь урину за редис.
>>3475121 > У тебя, говноедище, куча бесполезных данных данных - sql в запросах, индексы, идентификаторы к каждому сообщению. У меня этого нет, потому что я не каложуй. @ > РЯЯ ВРЁТИ НЕТУ ТЫ ГОВОРИШЬ ПРО МАГИЮ!11
Уже как-то не смешно даже с тебя, отрицание реальности пошло. Может ты вообще не сечёшь в технологиях и не понимаешь из чего состоят сообщения, что скрывает за идемпотентностью и чем обеспечивается последовательность?
Погоди, это получается ты реально малолетний студентик-обоссанец который зачем-то дрочит на эликсир? Мда.
>>3475311 Ого, у тебя неслабые ментальные проблемы, ты уже забыл что именно ты писал про постгрес с сридисом.
С тобой всё хорошо, обоссанец? Почему ты больше не способен поддерживать даже примитивный диалог? Это из-за бесконечных унижений и потока мочи, которая покрывает тебя и этот тред полностью?