会社では Spring Framework と Java8 を使ってサービスを書いていますが、趣味としては最新の Spring Framework 5 を Spring Boot 2 から使ってみることにしました。 その中でノンブロッキング処理の利用に関して、 C# での Reactive Extensions でなじみがあったような構文を見つけたので、これまた新しく出てきた WebFlux と Router Functions も一緒に Kotlin で書いてみました。 WebFlux は、 Reactor と呼ばれるオブサーバパターンを使った Push 型コレクションを利用したリクエストの仕組みです。今まで通り Controller を使うこともできます。
プロジェクト全体のソースコードはこちらから。ちょっとだけ Kotlin で DSL を加えています。