少し時間が経ってしまっていますが忘れないうちに……。
2018/09/20 の 19 時からおこなわれた「Reactive System Meetup in 大阪」で
Akka HTTP の話をしてきました。
Reactive System Meetup in 大阪 - connpass
8 月の終わりに「突然ですが……」からはじまる DM を受け取ったことで発表を決めました。
それは折しも Scala関西 Summit2018 の CfP が 8 月末で
ちょうど良いかなーと考えていた時期だったので
ちょっとした打算もあり軽く乗っかったのでした。
(けっきょくいろいろあって CfP は出さず……。)
私の発表の前後に
- Akka によるリアクティブシステムの概要
- Spring WebFlux
があったので、
Akka シリーズの実例として Akka HTTP を取り上げて
ディレクティブや Streams との連携にフォーカスしてみました。
HTTP のリクエストを 1 つのメッセージとして見立てて (実際は少し違いますが)
Akka やアクターモデルを Akka HTTP からはじめるのも入り口に良いのかもと思います。
発表資料は以下です。
「Akka をどんなときに使えば良いの?」とう質問をいただきましたが、
Actor ならスレッドから解放されたいときや Remote Actor を使って楽したいとき、
Akka Streams であればメモリに乗り切らないようなデータを
リクエスト受付しだいさばいていきたいときでしょうか。
バッチを書くときなら処理の各フェーズを Actor や Streams の Flow にあてると
Akka の書き方に乗っかるだけである程度きれいな分割がされてすっきりしやすいと感じています。
また「Akka を使うと (エンジニアなど) いろいろリソース確保が難しいんじゃないの?」については
Akka に限らずなんにでも程度こそあれ当てはまるのかなと思います。
例えば冗長性や耐障害性に関して Akka ではなくインフラなどでカバーするのも一つの手で
そこは状況やチームしだいで組み合わせを変えていくのが最良だと思います。
でも「これが良さそう!使いたい!」と思ったら
信じたものと気持ちを大切にしても良いんじゃないかなとも思っています。
(要調査・要覚悟)
ブログ放置しすぎなので技術のことばかりじゃなくていいから
何か書くようにしたいなー