Обработка агрегатов эволюции с течением времени в хранилище данных - PullRequest
0 голосов
/ 18 февраля 2019

Контекст: предположим, что агрегаты приложения хранятся в хранилище данных ключ / значение (без Event Sourcing).Ключами являются идентификаторы корней агрегатов, а значения - сериализованная версия JSON всего агрегата.

В течение срока действия программного обеспечения домен развивается и совершенствуется.Как следствие, структура агрегатов будет обновлена: агрегаты будут объединены с учетом границ транзакций или будет добавлено новое поле.

Обновление агрегатов в коде легко.Там будут ошибки компиляции в случае проблем.Однако обновить хранилище данных гораздо сложнее:

  • там могут быть исключения выполнения, потому что синтаксический анализатор не может проанализировать JSON
  • избежать простоев

IМожно подумать о некоторых решениях, таких как:

  • обновление агрегата при получении его приложением: на лету.Нет необходимости обновлять все хранилище данных.Хорошо для огромных хранилищ данных.
  • используя скрипт.Кажется, не соответствует отраслевым стандартам.
  • источник событий мог бы решить эту проблему довольно хорошо, потому что агрегаты строятся из событий.Но, кажется, плохая идея использовать ES по техническим причинам.

Есть ли у вас какие-либо указатели на современный уровень в этой области?

...