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

StackOverflow https://stackoverflow.com/questions/4238806

  •  26-09-2019
  •  | 
  •  

Вопрос

Когда снимки агрегатов стали вне синхронизации с журналом событий, я могу просто воспроизвести свои события из ранних снимков (которые должны быть в синхронизации). То же самое я могу сделать, когда добавляю / удалите новые поля или когда я изменяю логику существующих обработчиков.

В случае, если мне нужно добавить новую модель чтения (т.е. новый представление отчета), я могу сделать то же самое снова - я повторю свои события.

Но как я должен обрабатывать ситуацию, когда модель чтения стала без синхронизации с журналом событий? Хранение событий и публикаций в одной транзакции, но обновление модели чтения произошла в другой транзакции, которая может потерпеть неудачу. Повторяющиеся события с самого начала могут помочь, но это может принимать вечность. Мне нужна концепция снимков для всей читающей модели?

Как вы решаете эту проблему? Спасибо.

Это было полезно?

Решение

Что было бы причиной неудачи в обработчике событий? Как долго "вечность"?

Обновления чтения модели редко проваливаются (в отличие от командных обработчиков), поскольку логика внутри чрезвычайно проста. Сбои могут быть вызваны переходными проблемами (отключение IO / Network) и автоматически обрабатываются автоматически на шине сообщений.

Тем не менее, если модель чтения по какой-то причине не повреждена, то самый простой способ сбросить его и трансляция событий. Даже миллионы событий будут понадобиться достаточно небольшое количество времени. Кроме того, вы всегда можете использовать подход для уменьшения карты.

Я бы порекомендовал проводить приведенные снимки для чтения моделей. Я думаю, что это просто усложняет архитектуру без каких-либо значительных успехов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top