Python で書かれたコードをツイストで scala に大量に移植しようとしており、どのフレームワークの組み合わせを選択するかについて意見を求めています。
これは基本的に RPC (カスタム protobuf ベース + xmlrpc)/HTTP サーバーとクライアントであり、データベースの保持と変換を行いますが、後でこの書き換えの範囲外のワーカーに rpcs を送信します。
RPC スタックを実装するためのネットワーク IO/ベースとして、netty を使用しています。古いもののすべてのワークフローは twisted の Deferred に基づいていました。それを置き換えるために、ChannelFuture を直接使用するか、scalaz.Promise または akka.Future 内にラップすることを現在検討しています。
質問の一部は、コールバックを手動で操作するよりも簡単に実行できるかということだと思います。このルートを選択した場合、後でいくつかのラッパーを追加して継続を使用することで単純化できると思いますが、最初から別のものを使用する必要があるのでしょうか?
アクター モデル内のワークフローに合わせようとしましたが、stdlib アクターでは機能しないようです。
ありがとう。
更新: Finagle は、Twisted に非常によく似ているか、少なくとも偶然似ているようです。twitter.util.Future は twisted の Deferred によく似ています。なのでとりあえず使っています。
更新 2:そもそも移植した理由は、静的型付けとパフォーマンスです。