Развитие доменных событий¶
Шаблон “порождение событий”, предполагает сохранение событий навсегда. Однако, в этом случае может возникнуть проблема, так как структура событий может меняться со временем. Существует вероятность, что приложению придётся иметь дело с несколькими версиями событий
Развитие структуры события¶
На концептуальном уровне приложение, основанное на порождении событий, имеет трёхуровневую структуру:
- Состоит из одного или нескольких агрегатов
- Определяет события, генерируемые каждым агрегатом
- Определяет структуру событий
Вот какие варианты развития событий возможны:
| Уровень | Изменение | Обратно совместимое |
|---|---|---|
| Структура | Определение нового типа агрегата | Да |
| Удаление агрегата | Удаление существующего агрегата | Нет |
| Переименование агрегата | Изменение названия типа агрегата | Нет |
| Агрегат | Добавление нового типа событий | Да |
| Удаление события | Удаление типа событий | Нет |
| Переименование события | Изменение названия типа событий | Нет |
| Событие | Добавление нового поля | Да |
| Удаление поля | удаление поля | Нет |
| Переименование поля | Переименования поля | Нет |
| Изменения типа поля | Изменение типа поля | Нет |
Управление структурными изменениями путём приведения к базовому типу¶
Старые события могут приводиться к новому типу в момент загрузки из хранилища. Обновлением занимается компонент, который называют upcaster. В итоге код приложения имеет дело с актуальной структурой события.
Последнее обновление :
25 мая 2023 г.
Дата создания : 29 июля 2022 г.
Дата создания : 29 июля 2022 г.