Восстановление совокупного корня с нуля в системе источников событий.Какие шаги? - PullRequest
0 голосов
/ 14 марта 2019

Контекст:

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

Я хотел бы реализовать стратегию восстановления всех агрегатных состояний с нуля.

Event Store - это самодельная реализация, использующая реляционныебаза данных.Он хранит все события с начала истории системы.Пока у меня нет снимков.На данный момент система довольно мала.Однако я хотел бы принять во внимание наличие снимков в моем вопросе.

Поэтому я ищу стратегию восстановления агрегатов после сбоя системы в худшем случае, когда база данных модуля потеряна (восстановление не требуется)доступны).

Вопрос:

Какие шаги и какую информацию модуль должен запрашивать из хранилища событий, чтобы иметь возможность восстановить его состояние?

У меня есть одно решение, и я хотел бы знать, нахожусь ли я на правильном пути.Пожалуйста, проверьте решение, написанное ниже.

Решение, к которому я пришел до сих пор:

Шаги:

  1. Запрос потока событий (списокупорядоченных событий) с определенными типами (агрегат создан / удален), который поможет определить список агрегированных идентификаторов.
  2. Использовать список агрегированных идентификаторов, полученный на шаге 1, для запроса потоков агрегированных событий - один поток на агрегат.Если моментальный снимок доступен, он будет первым элементом совокупного потока.

Если у вас есть альтернативное решение, я буду рад узнать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...