新しいプロジェクトで CRQS + イベント ソーシングのアイデアを実装するために、akka-persistence イベント ソーシング機能を使用したいと考えています。問題は、ドキュメント ( http://doc.akka.io/docs/akka/snapshot/scala/persistence.html ) 以外に、良い例やアプローチ方法のガイドラインが見つからなかったことです。ドキュメントは、プロセッサ、ビュー、チャネルなどのアーキテクチャのすべての構成要素を説明するという点では優れていますが、それらを組み合わせる方法については説明していません。
問題は、akka-persistence で書き込みモデルと読み取りモデルをどのように接続すればよいかということです。私は3つのオプションを思いつきました:
直接接続 EventsourcedProcessor -> ビュー、ビューはすべてのイベントをジャーナルから直接受け取ります。これは最も単純な解決策のように思えますが、このアプローチを使用してプロセッサとビューを異なるノードに分散できるのではないでしょうか。
EventsourcedProcessor -> Channel -> View/normal Actor。最初のオプションとの違いは何ですか? これが正しい解決策である場合、なぜ akka-persistence ビルディング ブロックにビューがあるのでしょうか? Channels または PersistentChannels を使用する必要がありますか?
EventsourcedProcessor -> ある種のイベント バス (例: context.system.eventStream) -> ビュー/アクター。
最善の方法とその理由は何ですか?