Добавление и обновление CQRS-представлений¶
CQRS-представления добавляются и обновляются на протяжении жизенного цикла приложения.
Добавление и обновление представлений сами по себе довольно просты. При создании нового представления разрабатывается модуль стороны запросов, подготавливается хранилище данных и разворачивается сервис. Обработчики пропускают через себя все события, благодаря чему представление рано или поздно актуализируется. При обновлении нужно внести изменения и перестроить набор данных с нуля.
Однако, в реальных условиях это вряд ли будет работать.
Построение CQRS-представлений с помощью заархивированных событий¶
Брокер не может хранить сообщения вечно. Традиционные брокеры (RabbitMQ) удаляют сообщения после обработки потребителем. Более современные (Apache Kafka) хранят сообщения на протяжении времени, указанного в конфигурации.
Для этого приложению нужно архивировать старые сообщения, а новому представлению уметь читать их из архива.
Инкрементальное представление CQRS-представлений¶
Для обработки всех событий требуется много времени и ресурсов. В качестве решения можно воспользоваться двухэтапным инкрементальным алгоритмом. Первый этап периодически вычисляет снимок экземпляров каждого агрегата с учётом предыдущего снимка и событий, произошедших с момента создания предыдущего снимка. На втором этапе представление создаётся с помощью снимков и последующих событий.
Дата создания : 29 июля 2022 г.