Перейти к содержанию

Развитие доменных событий

Шаблон “порождение событий”, предполагает сохранение событий навсегда. Однако, в этом случае может возникнуть проблема, так как структура событий может меняться со временем. Существует вероятность, что приложению придётся иметь дело с несколькими версиями событий

Развитие структуры события

На концептуальном уровне приложение, основанное на порождении событий, имеет трёхуровневую структуру:

  • Состоит из одного или нескольких агрегатов
  • Определяет события, генерируемые каждым агрегатом
  • Определяет структуру событий

Вот какие варианты развития событий возможны:

Уровень Изменение Обратно совместимое
Структура Определение нового типа агрегата Да
Удаление агрегата Удаление существующего агрегата Нет
Переименование агрегата Изменение названия типа агрегата Нет
Агрегат Добавление нового типа событий Да
Удаление события Удаление типа событий Нет
Переименование события Изменение названия типа событий Нет
Событие Добавление нового поля Да
Удаление поля удаление поля Нет
Переименование поля Переименования поля Нет
Изменения типа поля Изменение типа поля Нет

Управление структурными изменениями путём приведения к базовому типу

Старые события могут приводиться к новому типу в момент загрузки из хранилища. Обновлением занимается компонент, который называют upcaster. В итоге код приложения имеет дело с актуальной структурой события.


Последнее обновление : 25 мая 2023 г.
Дата создания : 29 июля 2022 г.

Комментарии

Комментарии