Size: a a a

2021 August 23

SB

Sergei Baikin in symfony
Именно для этого нужны оптимистичные или писсимистичные локи.
источник

QQ

Qwert Qwertinsky in symfony
кейс с заказами и позициями заказа - вполне жизненный - но я не понял : какая именно реализация этого кейса не правильная, а какая по феншую
источник

✨Basic_Instinct✨ in symfony
дело все в том, что если говорим о ценах, то ты обязан продать товар по той цене, которая указана, изменилась она - это уже как говоиться "твои проблемы", а на случай наличия товара - делается резерв
источник

QQ

Qwert Qwertinsky in symfony
я может что то пропустил, но вроде речь шла про обьекты - а потом раз и про реализацию в персистентном хранилище
источник

SB

Sergei Baikin in symfony
Это пример связи объектов просто первый в голову пришёл. Вы уже говорите о eventually consistentsy. Тоесть вы признали что облажались с консистентностью в приложении.
В Европе не обязан. Можно в последний момент сказать упс цена другая продать не можем.
источник

SB

Sergei Baikin in symfony
Оптимистик лок на уровне объектов впринципе но да согласен.
Я про целостность данных.
источник

SB

Sergei Baikin in symfony
Я же предлагаю сразу делать так что мгновенная констстентность на уровне агрегата и между ними eventual. Помогает увидеть проблемы и факапы в зародыше подобные. А там где нет логики и конкурентности простые круды напрямую в базу с каким нить app sync или hasura
источник

✨Basic_Instinct✨ in symfony
локом  мы как раз таки лишаем себя изменению цены, нет?
источник

✨Basic_Instinct✨ in symfony
Как мы ответим упс
источник

SB

Sergei Baikin in symfony
Да. Но надо держать в уме все связи и лочить их на чтение. Кто то что то добавил и забыл лок во всех местах проставить и всё похеряно. Вы так нафиг базу убьёте с такими количеством локов на чтение. Даже оптимистик лок не выйдет.
источник

SB

Sergei Baikin in symfony
Ну просто говорим заказ не создался ибо цена другая.
источник

QQ

Qwert Qwertinsky in symfony
вот есть три разных типа истории : бизнесовая - это вот про эти риски с изменениями цен, про то кто несет издержки и характеристики излержек - во время агрегаторов - часто цена на условном я.маркете и 1с конкретного поставщика будут эээ ... разными - и это дело бизнес выработать правила, вторая история как работать с отражением объектов реального мира   в коде, а третья история как хранить состояние обьектов в персистентном хранилище.
источник

QQ

Qwert Qwertinsky in symfony
вот эта тема с тем что связи не нужны, а надо id хранить - это про отражение в коде обьектов реального мира, или про хранение состояния этих объектов в конкретном хранилище ?
источник

SB

Sergei Baikin in symfony
Это про объекты. Именно про обекты. Прошу не путать пхп объекты и объекты. Не каждый пхп объект является объектом.
источник

SB

Sergei Baikin in symfony
Ну да всё связано и проектируется под требования бизнеса. Особенно под то где ему надо моментальную согласованность а где итоговую. Ну и чем меньше агрегаты/объекты и чем их меньше тем лучше. Ибо границы транзакций и локов меньше.
источник

QQ

Qwert Qwertinsky in symfony
тогда формализуйте то что вы называете объектом (или дайте ссылку на источник - который отражает ваше представление )- и уточните в чем проблема использования ссылки на другой объект - через конкретный пример. Так как речь не про бизнесовую часть, и не про реализацию сохранения состояния в конкретном персистентном хранилище - то укажите проблематику в разрезе именно работы с связями  обьектов на уровне реализации в  языке программирования
источник

✨Basic_Instinct✨ in symfony
я что-то не знаю, или понять не могу... Но одно поняла точно, что все же "надо держать в уме все связи" )))
источник

SB

Sergei Baikin in symfony
Проблема в том что подобное происходит при наличии любой связи. Но люди об этом даже не задумываются и никак не берут в расчёт.
источник

SB

Sergei Baikin in symfony
Зачем нужны локи вы знаете?
источник

✨Basic_Instinct✨ in symfony
не, вообще о каких локах речь ))
источник