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

Есть набор операций, который обрабатывает эндпоинт. 1. Создать чат. 2. Создать сообщение. Как

лучше сделать? Двумя отдельными запросами в бд? Или транзакцией, чтобы сделать операцию атомарной? Насколько это будет удар по производительности?

Представим, что мы рассматриваем кейс социальной сети. Спасибо!

20 ответов

40 просмотров

Немного подробнее объясни Зачем тебе создавать сообщение сразу после создания чата?

Gleb- Автор вопроса
Максим
Немного подробнее объясни Зачем тебе создавать со...

ну допустим у меня нет чата между пользователем. я пишу ему сообщение у меня на бэке должно произойти создание чата + к этому чату прикрепляется сообщение

Gleb
ну допустим у меня нет чата между пользователем. я...

В таком случае скорее всего правильнее два отельных запроса сделать 🤔

Gleb- Автор вопроса
Gleb
а почему транзакцией, нет?

Не знаю даже на самом деле

Gleb
ну допустим у меня нет чата между пользователем. я...

У тебя предполагается что 2 пользователя могут создавать 10 разных чатов друг с другом?

эндпоинт, который производит две транзакции из разных доменов - анти паттерн, поэтому сделай атомарные

Gleb
ну допустим у меня нет чата между пользователем. я...

Создаешь чат и дальше все общение идет с чатом а не с пользователями и не надо костыли писать в виде постоянной проверки на чат и долбить сервак

Gleb
ну допустим у меня нет чата между пользователем. я...

POST /startConversation?user_id=...&message=... -> (ChatService delegate) insert into chat ... -> (MessageService delegate) insert into message values ({ chat_id }, ...)

ensi
эндпоинт, который производит две транзакции из раз...

Какой-нибудь post /order под капотом может проводить транзакции в абсолютно разных доменах, от пользователя до оплаты и рассылки уведомлений Почему ты считаешь, что это антипаттерн?

я придерживаюсь религии атомарных эндпоинтов

ensi
я придерживаюсь религии атомарных эндпоинтов

Это бессмысленно, а иногда и практически невозможно в случае сложной структуры проекта. Пример с заказом - не очень хорошо, если клиентское приложение будет последовательно слать запросы на создание заказа, потом на его оплату, потом на рассылку уведомлений

ensi
я придерживаюсь религии атомарных эндпоинтов

А потом приходит заказчик/продукт и говорит что вот эти все изменения надо собрать в большую форму и надо сохранять по одной кнопке

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта