Контекст: предположим, что агрегаты приложения хранятся в хранилище данных ключ / значение (без Event Sourcing).Ключами являются идентификаторы корней агрегатов, а значения - сериализованная версия JSON всего агрегата.
В течение срока действия программного обеспечения домен развивается и совершенствуется.Как следствие, структура агрегатов будет обновлена: агрегаты будут объединены с учетом границ транзакций или будет добавлено новое поле.
Обновление агрегатов в коде легко.Там будут ошибки компиляции в случае проблем.Однако обновить хранилище данных гораздо сложнее:
- там могут быть исключения выполнения, потому что синтаксический анализатор не может проанализировать JSON
- избежать простоев
IМожно подумать о некоторых решениях, таких как:
- обновление агрегата при получении его приложением: на лету.Нет необходимости обновлять все хранилище данных.Хорошо для огромных хранилищ данных.
- используя скрипт.Кажется, не соответствует отраслевым стандартам.
- источник событий мог бы решить эту проблему довольно хорошо, потому что агрегаты строятся из событий.Но, кажется, плохая идея использовать ES по техническим причинам.
Есть ли у вас какие-либо указатели на современный уровень в этой области?