дело все в том, что если говорим о ценах, то ты обязан продать товар по той цене, которая указана, изменилась она - это уже как говоиться "твои проблемы", а на случай наличия товара - делается резерв
Это пример связи объектов просто первый в голову пришёл. Вы уже говорите о eventually consistentsy. Тоесть вы признали что облажались с консистентностью в приложении. В Европе не обязан. Можно в последний момент сказать упс цена другая продать не можем.
Я же предлагаю сразу делать так что мгновенная констстентность на уровне агрегата и между ними eventual. Помогает увидеть проблемы и факапы в зародыше подобные. А там где нет логики и конкурентности простые круды напрямую в базу с каким нить app sync или hasura
Да. Но надо держать в уме все связи и лочить их на чтение. Кто то что то добавил и забыл лок во всех местах проставить и всё похеряно. Вы так нафиг базу убьёте с такими количеством локов на чтение. Даже оптимистик лок не выйдет.
вот есть три разных типа истории : бизнесовая - это вот про эти риски с изменениями цен, про то кто несет издержки и характеристики излержек - во время агрегаторов - часто цена на условном я.маркете и 1с конкретного поставщика будут эээ ... разными - и это дело бизнес выработать правила, вторая история как работать с отражением объектов реального мира в коде, а третья история как хранить состояние обьектов в персистентном хранилище.
вот эта тема с тем что связи не нужны, а надо id хранить - это про отражение в коде обьектов реального мира, или про хранение состояния этих объектов в конкретном хранилище ?
Ну да всё связано и проектируется под требования бизнеса. Особенно под то где ему надо моментальную согласованность а где итоговую. Ну и чем меньше агрегаты/объекты и чем их меньше тем лучше. Ибо границы транзакций и локов меньше.
тогда формализуйте то что вы называете объектом (или дайте ссылку на источник - который отражает ваше представление )- и уточните в чем проблема использования ссылки на другой объект - через конкретный пример. Так как речь не про бизнесовую часть, и не про реализацию сохранения состояния в конкретном персистентном хранилище - то укажите проблематику в разрезе именно работы с связями обьектов на уровне реализации в языке программирования