Я хочу использовать функцию поиска событий akka-persistence, чтобы реализовать идею CRQS + Event Sourcing в моем новом проекте. Проблема заключается в том, что помимо документации (http://doc.akka.io/docs/akka/snapshot/scala/persistence.html) я не мог найти хороших примеров или рекомендаций, как подойти к ней. Документация замечательна с точки зрения объяснения всех строительных блоков архитектуры, таких как процессоры, представления, каналы, но не объясняет, как их собрать.
Итак, возникает вопрос: как я должен подключить модель записи с моделями чтения в akka-persistence? Я придумал три варианта:
-
Прямое подключение EventsourcedProcessor → View, представление получает все события непосредственно из журнала. Похоже, это самое простое решение, но мне интересно, можем ли мы распределять процессор и просматривать на разных узлах, используя этот подход.
-
EventsourcedProcessor → Channel → View/normal Actor. В чем разница с первым вариантом? Если это правильное решение, почему у нас есть Views в блоках akka-persistence? Должен ли я использовать Каналы или PersistentChannels?
-
EventsourcedProcessor → какая-то шина событий (например, context.system.eventStream) → Views/Actors.
Каков наилучший способ и почему?