注: 残念ながら、この質問は終了しましたが、他の誰かが同じ質問をした場合に備えて、この質問を維持しようとしています。
私は、モバイルデバイスと既存のWebサービスの間に位置するScalaでのサービスを開発するための優れたソリューションを探していました。
実行可能なオプションの現在のリストは次のとおりです。
おそらくそこにはもっと多くのオプションがあります。どちらを使用するかをどのように決定しますか?良いScalaミドルウェアの選択の特徴は何ですか(駄洒落を許してください;-)。TypeSafe Scalaスタックの一部であるAkkaに行きたいのですが、Finagleのようなものには豊富なライブラリのセットがあり、配管がとても簡単です。スプレーは見栄えが良く、使いやすいです。
アドバイス、洞察、経験をいただければ幸いです。そこにいる誰かが、共有しても構わないこれらのいくつかの経験を持っているに違いないと確信しています。
アップデート:
この質問が再開されることを望んでいます。この質問に対する良い答えは、新しいスケーラターが関連する落とし穴を回避するのに役立ちます。
更新2:
これらは、この質問をして以来の私自身の経験です。
Finagle-私はプロジェクトにFinagleを使用しましたが、それは堅実です。
スプレー-私の最新のプロジェクトでは、スプレーを使用していますが、非常に満足しています。最新のリリースはAkka2に基づいて構築されており、Spray-canライブラリを使用して直接実行できるため、Webサーバーが不要になります。スプレーはフレームワークではなくライブラリのセットであり、非常にモジュール化されています。Learn about Spray:REST on Akkaビデオは素晴らしい概要を提供し、Cakesolutionsのこのブログは本当に素晴らしい開発アプローチとアーキテクチャを示しています。
更新3:
人生はかなり速く動きます。たまに立ち止まって見回さないと、見逃してしまうかもしれません。-Ferris Bueller
最近では、選択が簡単になっています。私の謙虚な意見では、スプレーは戦いに勝ちました。次のAkkaHTTPになるために、Akkaに統合されています。私は現在、複数のプロジェクトでスプレーを使用していますが、これは私が今まで出会った中で最も素晴らしく、最もサポートされているソフトウェアであると正直に言うことができます。
これは最初の質問に答えるものではありませんが、少なくとも、ほとんどの場合、スプレーが最良の選択であると思われる理由をある程度示しています。非常に柔軟性があり、ブロッキングがなく、非常に安定しています。クライアント側とサーバー側の両方のライブラリと優れたテストキットがあります。また、これらの統計を見て、パフォーマンスに関するアイデアを入手してください。Webフレームワークのベンチマーク