CQRS, почему бы просто не иметь эластичный поиск для чтения и записи? - PullRequest
0 голосов
/ 09 декабря 2018

Я думаю о наличии архитектуры CQRS для моего проекта.Это означает наличие базы данных для чтения и записи и процесс обновления для синхронизации обеих баз.

Поскольку я все равно собираюсь обновлять базу данных read (asticsearch) после каждой команды, я задаюсь вопросом: зачем вообще иметь базу данных write?

1 Ответ

0 голосов
/ 11 декабря 2018

Целью разделения является распределение нагрузки по нескольким базам данных.Используйте одну базу данных, оптимизированную для записи, для операций записи и обновите базу данных, оптимизированную для чтения, как асинхронную.Таким образом, нагрузка записи не влияет на чтение базы данных.Мы можем масштабировать их независимо.

Другая причина - схемы чтения и записи могут отличаться.У вас может быть блог-сайт, на котором перечислены последние блоги на домашней странице, вам нужно записать все данные для записи в базу данных, но вам нужны только некоторые данные для перечисления или индексации.Следовательно, использование CQRS на уровне инфраструктуры обеспечивает независимую масштабируемость баз данных.

...