170 похожих чатов

Как бы ты организовал работу чата?

12 ответов

13 просмотров

вебсокеты на ноде )

Кроме микросервисов и монолита существуют другие архитектуры?

Pavel-Buchnev Автор вопроса

давай сначала про чат, как бы ты его сделал.

а давай, я б сделал в одном проекте разбивка на микросервисы тут только усложнит задачу

+ узким местом все равно будет бд

Pavel-Buchnev Автор вопроса

почему?

запись сообщений и транзакций юзает бд, отчеты тоже юзают бд, максимум можно заюзать кеш, но это скорее временное решение

почему работа с бд медленная?

Pavel-Buchnev Автор вопроса

нет,

Pavel-Buchnev Автор вопроса

ну так отчеты выносим и через события собираем данные для отчета другим сервисом

а почему бы не заюзать Queues? проблема в микросервисах в том что разбить на микросервисы просто, но потом вернуться на монолит очень сложно, также при такой разбивке будет усложняться взаимоотношения между микросервисами что приведет до того что каждый компонент сам по себе очень простой, но их общения очень сложное, а это на уровне кода не отрефакторишь помню похожая проблема была в olx у них микросервисы сильно разрослись так что было непонятно какие из них все еще актуальные, и для нахождения они написали сервис мониторинга и в итоге сервисы которые не вызвались ни разу за 3 месяца отрубили мне больше импонирует подход когда есть монолит и по необходимости очень изолированные куски можно вынести, но не строить именно микросервисную архитектуру

Pavel-Buchnev Автор вопроса

Проблема реально интересная. Queues это первое что начинаешь юзать и плодить инстансы с воркерами. Так по поту монолита и идем. Смотрим что в данный момент является узким местом и решаем конкретную проблему.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта