CQRS определенно не только для гринфилда. Преобразование больших унаследованных систем в CQRS может быть успешно выполнено, просто требуется немного изящества и времени.
Ключ заключается в том, чтобы внедрить управление событиями в унаследованную систему, прежде чем пытаться создать систему отчетности. В идеале у вас есть подход репозитория в устаревшей системе, где вы можете добавлять записи в концентратор событий. Эти записи событий будут асинхронными при запуске и забывании, поэтому они добавят небольшую нагрузку на сервер, на котором работает устаревшая система, но не должны влиять на частоту ответов отдельных записей. Если у вас нет шаблона хранилища на месте, сейчас может быть время для рефакторинга. Если у вас нет репозитория и вы не хотите его реорганизовывать, неприятная возможность - добавить триггеры в БД для записи событий.
При внедрении логики создания событий вы также можетепроектирование отчетной стороны. Я бы не стал создавать сторону отчетности, пока не будет задействована большая часть логики событий, потому что вы будете неоднократно обнаруживать новые события, которые вам нужны, из устаревшей системы, на которую вы не планировали. Когда вы поймете, что вам нужны эти новые события, ваш план для стороны отчетности изменится, и если вы уже построили его частично, вы можете в итоге выбросить только что написанный код.
После того, как события на месте, нужно просто набросать код для поддержки стороны чтения, что является трудоемким, но тривиальным.
Не забудьте дать себе достаточно времени, чтобы сделать это. Независимо от того, сколько вы планируете, в процессе много проб и ошибок, поэтому вам определенно потребуется больше времени, чем вы думаете. Если сроки будут жесткими, то репликация в базу данных отчетов сделает работу быстрее и дешевле, но она будет менее гибкой и потребует дальнейшего технического обслуживания.
Удивительно, насколько полезными являются события, когда они происходят. Слушатели событий начинают появляться во всех видах разрозненных систем, о которых вы и не думали, поэтому, если вы сможете заставить руководство расплатиться за более высокую стоимость и более длительные сроки применения подхода Eventing, это окупится.