着信HTTPリクエストをスレッドにバインドされたイベント処理アクターに送信されるイベント(ケースクラス)に変換する薄いWebレイヤー(Scalatra )があります。一部のイベントには、さまざまな理由で変更する必要がある集約ルートのIDが含まれています。アプリケーションデータの総量が大きすぎてメモリに収まらないため、操作する前に、データソースからIDで集計を取得する必要があります。もちろん、イベント処理アクターをブロックしたくないので、新しい(イベントベースの?)データをロードし、変更してデータソースに保存するアクター。理想的には、データソースのACID機能に依存するのではなく、アプリケーションで同時実行性を処理したいと思います。基本的に、各アグリゲートへのシリアル化/トランザクションアクセスが必要です。
これはアクターを使用して達成できますか?最善のアプローチは何でしょうか?ConcurrentHashMap
集約ルートIDにキー設定されたアクターを含むイベント処理アクターの内部を維持しますか?
それとも、STM:s(ScalaSTM / Akka)などを使用する必要がありますか?