Size: a a a

Software Design/Architecture/Zen

2021 March 13

SP

Sergey Protko in Software Design/Architecture/Zen
Allan Nettzan
aggregatestore
стор агрегатов тогда
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Возможно.
Не спец.
Могу ошибаться в определениях.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну тут вопрос не в определениях а просто в том как переводишь
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Allan Nettzan
Вопрос.
Тема: EventSourcing.
Может ли агрегат отвечать за свое сохранение? Принимать event store и вызывать методы сохранения самостоятельно?

В свою очередь Для вызова сохранения агрегата отвечает агрегат стора.
может но не стоит. Если есть возможность получить стрим на вход и пачку ивентов на выход которые будет уже другая штука персистить будет лучше.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
что бы твои агрегаты так и оставались вариантом редьюса стриима
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Что то подобное получается
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну похоже на правду. загрузили агрегат, поменяли, сохранили.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или "забрали из стора текущий стэйт агрегата, поменяли, положили новый стэйт в стор". Просто в твоем случае новый стэйт это новая пачка ивентов
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ты видимо неправильно прочитал или перевел
источник

SP

Sergey Protko in Software Design/Architecture/Zen
он не "берется за сохранение", он только гарантирует тебе что стэйт останется корректным. За персистенс (именно сохранение в базу) отвечает твой стор агрегатов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или ты о том что месте что мол "стор может разложить твой агрегат на разные таблички"? Ну в любом случае ты что-то не так прочитал
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Да.
Вроде бы дошло.
Агрегат стор же организует все действия для сохраняемости.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
p.s. вообще агрегаты должны быть маленькими ровно по той причине что это партиции данных и работа с оными происходит последовательно. Два чела одновременно трогают агрегат - у одного конфликт. Больше агрегаты - выше шансы того что два человека потрогают. Но это все к логике приложения сильно привязано. Может быть так что у тебя огромные агрегаты которые всегда только один человек трогает и так последовательно
источник

RL

Romka Los in Software Design/Architecture/Zen
Sergey Protko
p.s. вообще агрегаты должны быть маленькими ровно по той причине что это партиции данных и работа с оными происходит последовательно. Два чела одновременно трогают агрегат - у одного конфликт. Больше агрегаты - выше шансы того что два человека потрогают. Но это все к логике приложения сильно привязано. Может быть так что у тебя огромные агрегаты которые всегда только один человек трогает и так последовательно
«Должны» как should?:)
источник

AN

Allan Nettzan in Software Design/Architecture/Zen
Кмех...
да уж сложновато дается пока что...
Что почитать на тему ES?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Romka Los
«Должны» как should?:)
ну не must точно. Опять же меньше агрегаты - больше будешь полагаться на eventual consistency. загоняться на все это имеет смысл только если у тебя collaborative domain.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
хм... вообще event sourcing не имеет смысла вне collaborative domain....
источник