私は Akka と Scala には比較的慣れていませんが、Akka を汎用フレームワークとして使用して、さまざまな Web ツールや cli コマンドから情報を収集したいと考えています。
アクター モデルでは、アクターをブロックしないことが非常に望ましいという一般原則を理解しています。また、http リクエストの場合、非同期の http クライアント (Spray など) があります。これは、Actor フレームワーク内でリクエストを非同期に処理できることを意味します。
ただし、アクターを既存のブロッキング API 呼び出し (scala ProcessBuilder/ProcessIO ライブラリなど) と組み合わせる場合、どのようなアプローチが最適かはわかりません。これらの CLI コマンドの発行に関しては、比較的少量の並行性が予想されます。たとえば、12 コアのマシンで最大 10 の同時 CLI 呼び出しを実行するなどです。
単一のアクターがこれらの CLI コマンドを管理し、実際の作業を必要に応じて作成される Future に任せる方がよいでしょうか? それとも、PinnedDispatcher に支えられた別個のアクターのセットを維持するだけでよりクリーンになるでしょうか? または、他の何か?