База данных запросов в обработчике команд в шаблоне CQRS - PullRequest
0 голосов
/ 07 апреля 2020

Я занимаюсь разработкой приложения на основе шаблона CleanArchitecture, в котором используется CQRS. Что я читал о CQRS, так это то, что чтение и запись разделены. Означает ли это, что я должен избегать базы данных запросов в обработчиках команд? Например, в UpdateCommandHandler мне нужно сначала получить запись, а затем обновить ее.

1 Ответ

1 голос
/ 07 апреля 2020

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

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

...