Чтение непосредственно из хранилища событий или реализация копии событий на стороне чтения - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю над проектом, в котором реализовал CQRS без источников событий. Я использую Mongo для чтения базы данных, а также для записи базы данных. Когда что-то нужно изменить, оно сначала изменяется в базе данных записи, а затем синхронизируется база данных чтения.

Позже я представил что-то вроде Event Store, также являющегося установкой MongoDB. Я делаю историю всех событий, которые каким-то образом изменили другие базы данных. Чтение базы данных не синхронизируется с хранилищем событий, поэтому у меня нет возможности читать события.

Я попал в ситуацию, когда мне нужна информация, которая находится внутри событий из хранилища событий. Должен ли я подключиться напрямую к хранилищу событий и читать оттуда, или я должен синхронизировать базу данных read read с хранилищем событий и в основном хранить копию хранилища событий?

Заранее спасибо, ребята! Я использую C # .NET Core, если кому-то нужна такая информация.

1 Ответ

0 голосов
/ 28 апреля 2018

Нет функциональной причины, по которой вы не должны просто читать события непосредственно из хранилища событий.

Мотивация для чтения моделей, как правило, запросы с низкой задержкой; мы берем представление данных в книге записей (потоки событий) и преобразуем их в структуру данных, которая может отвечать на запросы. Мы принимаем последствия возможной последовательности, чтобы получить быстрое время отклика.

Но если фигура, которая нам нужна для запроса, является потоком событий, то мы можем просто использовать исходные данные.

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

...