いくつかのレイヤーで実装されているJavaシステムがあります。最下位レベルには、データベース、blobストレージ、処理キューなどのさまざまなインフラストラクチャコンポーネントを抽象化するサービスがあります。さらに、これらの1つ以上を使用するワークフローを実装するドメインレイヤーがあります。サービス(コマンドおよび複合コマンドパターンを使用)。最後に、その上にjax-rs(ジャージ)ベースのレイヤーがあり、ドメインレイヤーからのワークフローの観点から実装されたRESTインターフェース/プロトコルを提供します。
私のScalaの経験は限られていますが、Javaコードは非常に冗長で、デバッグが難しい場合があるため、ドメインレイヤーのより表現力豊かなバージョンを作成するのに適したツールかもしれません。コマンドの構成と実行の制御が、具体的なコマンドによって拡張された基本クラスによって処理されるためです。後から考えると、これは理想的な設計上の選択ではなかったかもしれません。
この非常に高レベルの説明が、私が達成しようとしていることを説明するのに役立つことを願っています。もっと具体的にする必要があるかどうか教えてください。私は主に、Javaベースのサービスレイヤーを維持しながら、ドメインレイヤーをScalaで構築する方法に興味があります。さらに、ドメイン層の上にhttp / RESTプロトコルを実装して、JavaWebアプリケーションコンテナーにデプロイできるようにする方法についての提案も非常に興味深いものです。