複数コンポーネントの Akka クラスター ベースのシステムを構築しています。すべてのコンポーネントは個別の Play! プロジェクトを開始すると、Akka クラスターに参加し、コンポーネントが動作するアクターの検索を開始します。
問題
このセットアップには 2 つの問題があります。
テスト コードを書くのは非常に難しく (これについてはまだ理解していません)、特に異なるコンポーネントから来る複数のアクターに依存するテストを書く場合はそうです。依存関係を解決し、テストコードで適切なクラスターを作成するにはどうすればよいでしょうか (2 つの Play アプリケーション間で!)
開発中、すべての開発者は複数の Sbt インスタンスを開始してシステムを起動する必要があり (さまざまなプレイ プロジェクト)、これによりシステム メモリ全体が消費され、開発が信じられないほど遅くなります。
私が探しているもの
クラスターの「ロール」プロパティを使用して選択的な起動を行うことを考えていました。これは、Play プロジェクトが 1 つしかなく、コンポーネントが (モジュール) であり、プレイ プロジェクトの起動時に現在の「ロール」をスキャンすることを意味します。このインスタンスのプロパティに基づいて、特定のコンポーネント/アクターを開始または停止します。
これによりテストが容易になりますが、Play でこれを行う方法が正確にはわかりません。特に、一部のコンポーネントが実際に RESTful API (Play コントローラー) を提供し、ブート時にルートとコントローラーを有効/無効にする方法がわかりません。遊ぶ。
モジュラー型分散システムを構築する正しい方法を示す文書や何か、または手がかりはありますか? (SBT のセットアップ方法に関連するものもありますか?
編集 1: プロジェクトは単一のリポジトリに存在し、単一の sbt ビルド (複数プロジェクト) を持っています。