とあるIT屋の独白

ITや経営について主に書きます

Finagleについて調べてみた

仕事でScalaを触るようになってから、2ヶ月ばかり経過しました。まだまだ言語仕様など使いこなせてない部分もありますが、徐々に色々なライブラリに触れる機会も出てきました。その中で今日紹介するのは「Finagle」(フィネーグルと呼ぶらしい)という、Twitter社が開発したライブラリになります。
Finagleは「非同期」でのRPCを作る時に用いるライブラリになります。RPCといっても、基本的にはWebのAPIをイメージしてもらえば大丈夫と思います。ざっとした概要やサンプルソースは以下のスライドが参考になると思います。

Scala + Finagleの魅力】
https://www.slideshare.net/mobile/kmizushima/scala-finagle

Finagleを使う上でScalaのFuture機能への理解が必須となります。Futureは非同期の処理をScalaで実装する際に用いるもので、処理内容としては下記の記事が参考になります。Javaでのロック処理と比べると、かなり簡単に非同期処理が実装できるのがわかると思います。

Scala の Future】
https://qiita.com/4245Ryomt/items/63bcf0bf0bab3a99f6b5


Finagleを用いた具体的な実装は、下記のブログ記事が参考になります。関数型っぽい書き方でAPIのやり取りをしているのが、特徴ですね。

【Finagle - 都会育ちのメッセージングフレームワーク
http://steps.dodgson.org/bn/2011/11/04/