Я хочу преобразовать относительно новое веб-приложение с четкой моделью предметной области в систему в стиле CQRS. Мое новое приложение, по сути, является расширенной заменой старой существующей системы.
Существующие системы в моей организации совместно используют набор общих баз данных, которые обновляются бесчисленным количеством приложений (разработанных методом хаоса), которые существуют разрозненно по всей компании. (В нынешнем виде я считаю, что ни один человек в компании не может идентифицировать их всех.)
Поэтому мой вопрос касается моделей чтения для моего приложения. Поскольку различные изменения состояния, общие пользовательские данные и т. д. обновляются другими приложениями, находящимися вне моего контроля, как лучше всего справиться с построением моделей чтения таким образом, чтобы я мог иметь дело с внешними обновлениями, но при этом сохранять относительно просто?
До сих пор я рассматривал следующее:
- Создайте представления в базе данных для моделей чтения, которые читают все таблицы, старые и новые
- Добавьте триггеры в существующие таблицы для обновления новых таблиц модели чтения.
- Добавьте некоторый код в базу данных (CLR Stored proc/etc [sql server]), чтобы обновить внешнее хранилище данных для моделей чтения.
- Отказаться от надежды
Каково общее мнение о том, как подходить к этому? Глупо ли думать, что я могу навести порядок в устаревшей системе, не переписав все полностью с нуля?