初めまして、Ads Platform開発チームの岡田(@ocadaruma)です。
この記事はLINE Advent Calendar 2017の17日目の記事です。
今回、個人的に以前から気になっていたAkka HTTPの内部構造について、この機会に調べましたので紹介いたします。
Akka HTTPとは
Akka HTTPは、Lightbend社によって開発されている、Scala/Java用のHTTP toolkitです。
現在はメンテナンスが終了したsprayの後継と位置付けられており、特徴的なRouting DSLをsprayから受け継いでいます。
また、Play Frameworkは2.6系より、Akka HTTPをデフォルトのバックエンドとして採用しています。
調査のきっかけ
Routing DSLを始めとしたAkka HTTPのAPIは、シンプルかつ高いComposability(組み立て可能性。小さく再利用しやすい構成要素を複数組み合わせて使えること)を提供する一方、その抽象度の高さから、低レイヤーでのHTTPリクエストの処理の仕組みまで含めて理解するには、若干のハードル