Size: a a a

var chat = new Chat();

2020 March 04

A

Andrey in var chat = new Chat();
Etki
Еще вброшу: в большинстве случаев надо не транзакции катать, а кидать в очередь команду на выполнение, типа "добавить комментарий с текстом Х как ответ к комментарию Ъ". А оно там в бэкграунде пусть разбирает. Заодно и запросы на чтение можно дедуплицировать.
Нет. Если надо откатить изменения то транзакция рулит
источник

A

Andrey in var chat = new Chat();
Etki
Еще вброшу: в большинстве случаев надо не транзакции катать, а кидать в очередь команду на выполнение, типа "добавить комментарий с текстом Х как ответ к комментарию Ъ". А оно там в бэкграунде пусть разбирает. Заодно и запросы на чтение можно дедуплицировать.
Это ежу понятн. Там транзакция нахер не нужна
источник

B

Bogdan in var chat = new Chat();
Etki
Еще вброшу: в большинстве случаев надо не транзакции катать, а кидать в очередь команду на выполнение, типа "добавить комментарий с текстом Х как ответ к комментарию Ъ". А оно там в бэкграунде пусть разбирает. Заодно и запросы на чтение можно дедуплицировать.
CQRS не все могут юзать)
источник

B

Bogdan in var chat = new Chat();
кстати как покзала пратика у меня на рпоекте, когда твой код не успевает вычитвать очередь сообщений — это ад!!!
источник

A

Andrey in var chat = new Chat();
Это всегда так. Тогда надо чем то жертвовать ((
источник

E

Etki in var chat = new Chat();
если команда простая, то там на оптимистичной блокировке можно просто вывезти, либо она вообще не может не выполниться (тот же пример с комментарием - если родительский существует, то команда просто не может проебаться без падения инфраструктуры), более сложные действительно может потребоваться заворачивать в транзакции, но я тут делаю акцент на том, что это происходит в бэкграунде, а не на каждый реквест
источник

E

Etki in var chat = new Chat();
т.е. нет такого, что к тебе прилетела тысяча соколиков и все один эндпоинт дернули аки анус псу
источник

A

Andrey in var chat = new Chat();
Всякое бывает
источник

E

Etki in var chat = new Chat();
Bogdan
кстати как покзала пратика у меня на рпоекте, когда твой код не успевает вычитвать очередь сообщений — это ад!!!
если клиенту вернулся идентификатор записанной команды, то он просто сидит и поллит, пока она не применится.
всё лучше, чем dogpile effect, когда у тебя приложение вообще отвечать перестает
источник

A

Andrey in var chat = new Chat();
Транзакции дорогое удовольствие
источник

E

Etki in var chat = new Chat();
ну вообще я тут измываюсь над практиками прошлого века, но ничего страшного в этом подходе на самом деле нет, конечно
источник

E

Etki in var chat = new Chat();
просто всё гораздо проще масштабировать, когда приложение ходит только по конкретным айдишникам
источник

B

Bogdan in var chat = new Chat();
Etki
если клиенту вернулся идентификатор записанной команды, то он просто сидит и поллит, пока она не применится.
всё лучше, чем dogpile effect, когда у тебя приложение вообще отвечать перестает
У нас задержки бывает по пол часа, как много клиентов прилетит(
источник

B

Bogdan in var chat = new Chat();
Мэи они бесчтса что не видят данные которые отправили
источник

E

Etki in var chat = new Chat();
Полчаса это пиздец, у нас такое тоже бывает, но только когда половину базы обновляют, и все знают, что сервис это мгновенно не прожуёт
источник

B

Bogdan in var chat = new Chat();
Etki
Полчаса это пиздец, у нас такое тоже бывает, но только когда половину базы обновляют, и все знают, что сервис это мгновенно не прожуёт
У нас увы малый бизнес клиенты в основном
источник

B

Bogdan in var chat = new Chat();
И есть несколько покрупнее
источник

B

Bogdan in var chat = new Chat();
На их активность никак не повлиять) и одни как поднасолят всем
источник

B

Bogdan in var chat = new Chat();
Я сделал батч обработку в одном месте, полегчало чуток
источник

A

Andrey in var chat = new Chat();
BI
источник