Pull to refresh

Comments 3

Хороший разбор, особенно ценно, что показано, когда CQRS не нужен. Это редкость — обычно о нём пишут как о серебряной пуле.
Из практики: CQRS действительно начинает «играть» только тогда, когда чтение доминирует над записью на порядки. Но при этом важно помнить: за каждой денормализованной таблицей и за каждым новым микросервисом стоит реальное потребление ресурсов.
Вопрос уже не в том, как строить системы, а на каких условиях. Пора признать: высоконагруженные системы и ИИ — это уже не просто код, а новая форма тяжёлой индустрии. Бездумно внедряя избыточные паттерны там, где справился бы простой CRUD, мы вносим вклад в те самые гигаватт-часы и миллиарды литров воды, о которых пишут исследования VU.
Технологии должны усиливать интеллект, а не только нагрузку на экологию. Принципы бережливого проектирования (Lean Engineering) сегодня — это уже не просто вопрос производительности, а вопрос нового социального договора и нашей ответственности как инженеров.

Вы пишете, что при больших объемов запросов на сохранение, база данных будет блокироваться. Ну окей. Чем в этом паттерне сохранение в query базу, при одновременных множествах чтений из той-же базы, будет отличаться от просто сохранения в одну базу и одновременных чтениях, в частности при dual-write?

Что за паблишер eventPublisher.publish ?

Что за Event Sourcing + Projections ? Когда он срабатывает? В Хибернате? Почему там ни слова про транзакции?

Что за @StartSaga? Что это за фреймворк? Хоть бы намекнули. Как в этом случае обрабатываются транзакции/ошибки?

Как вообще в разных случаях организуются транзакции (или не организуются) и обрабатываются ошибки (производятся корректировки, откат...)?

CRUD почти никогда не натягивается на бизнес домен. А CQS и CQRS идеально для DDD. Считай с бизнесом на одном языке, а не "положить/взять".

Много лет использовал Axon Framework. Много хороших идей - как делать CQRS+Event Sourcing оттуда подчеркнули, а некоторые реализовали сами. От слова CRUD передёргивает уже. Рекомендую посмотреть Axon.

Sign up to leave a comment.

Articles