SlideShare a Scribd company logo
KotlinConf 2018 から⾒る
最近の Kotlin サーバーサイド事情
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
川⽥ 裕貴
LINE Corporation 2016年⼊社
開発1センター LINE開発1室 P Part チーム
スタンプ・絵⽂字関連サーバー開発 (Java, Kotlin?)
IoT 関連サービスの Server-side 開発 (全て Kotlin)
HIROTAKA KAWATA @hktechno
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Microservices in LINE Shop
•Armeria を利⽤した Thrift RPC で Microservices
• Armeria: LINE 製 OSS HTTP/2 RPC ライブラリ https://line.github.io/armeria/
• LINE では、歴史的に Thrift を RPC のために利⽤している
• 内部は、ほぼすべて RxJava2 を組み合わせた Non-blocking RPC, DB アクセス
•過去に書いたブログ記事とか
• RxJava 2とArmeriaでマイクロサービスを⾮同期化してみた
• LINE スタンプショップにおける Zipkin 利⽤事例
• Elasticsearch を検索エンジンとして利⽤する際のポイント
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
お仕事での Kotlin
•IoT サービスのバックエンドを Kotlin で書いてます
• 来⽉の LINE Developer Day 2018 に期待していてください
• Spring Boot 2 + Armeria + Thrift RPC, REST API
• もともと Spring MVC で書かれていたが…
• リリースもしていないサービスなのに Armeria 化され、完全 Kotlin 化された…
• Armeria も、Kotlin から使っていてそんなに不便なことはない
• たまに微妙に感じることがあるので、落ち着いたら Kotlin 対応を⼊れたいと思っている
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
KotlinConf 2018 - 感想
•Kotlin サーバーサイドの話も、思ったよりあった
• サーバーサイドの⼈なので、サーバーサイドのトークを重点的に聞いた
• ただ、Kotlin の話より、何かを Kotlin でやってみた系の話が多かった、Kotlin はおまけ
•Coroutine がアツい
• みんな本当に使いこなせるの?Reactive Streams との共存…
•Amsterdam がいいところだった
• US でやるカンファレンスより満⾜度⾼い、会場とかいろいろ
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Server-side Kotlin
•みんな使ってる?
•イケてるところ
• Null safety, Type safety
• Functional programming, DSL
•サーバサイド的に重要
• JVM ⾔語
• 既存の Java のリソースが使える、親和性が良い
• パフォーマンス的な問題があまりない
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Kotlin で Web フレームワーク何つかってる?
•よく使われていそうなのは、以下の3つかな?
•Ktor http://ktor.io/
•http4k https://www.http4k.org/
•Spring Boot https://spring.io/projects/spring-boot
•Ktor, http4k は、Pure Kotlin, Lightweight
• 全部⼊りがほしければ、やっぱり Spring Boot ?
• Kotlin で Spring を快適に使うには ?
from Komparing Kotlin Server Frameworks
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Kotlin Web フレームワーク⽐較
•Swagger, Micrometer, Zipkin (Tracing) が使いたい!
• http4k, Spring Boot
•Coroutine (Non-blocking, Asynchronous API) が使いたい!
• Ktor は JetBrains 謹製なのでもちろん対応
• Spring も Unofficial support がある (for webflux)
•(個⼈的には) Ktor のこれからの成⻑に期待
• それまでは、Spring でもいいかなぁ?
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
http4k
val app = routes(
    "bob" bind GET to { Response(OK).body("you GET bob") },
    "rita" bind POST to { Response(OK).body("you POST rita") },
    "sue" bind DELETE to { Response(OK).body("you DELETE sue") }
)
val server = app.asServer(SunHttp(8000)).start()
Ktor
embeddedServer(Netty, 8080) {
routing {
get("/") {
call.respondText("Hello, world!", ContentType.Text.Html)
}
}
}.start(wait = true)
Server as a Function
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Spring Boot を Kotlin で快適に使うには…
•SpringFu, KoFu を使って Functional!! DSL!! (ただし incubating feature)
• やっぱり Spring 使いたいですよね
• https://github.com/spring-projects/spring-fu
•Annotation を多⽤した Configuration, Bean registration は⿊魔術に近い
• 何が起きているのかわからない、辿れない
• 解決策としての Functional configuration with Kotlin DSL で明⽰的な Configuration を実現
• 上記のプレゼンでは、Live coding で1つづつアノテーションを削っていく実演
from Kotlin and Spring Boot, a Match Made in Heaven
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
SpringFu, KoFu のサンプル https://github.com/ajavageek/springfunctional-migration
@SpringBootApplication
class MigrationDemoApplication
fun main(args: Array<String>) {
runApplication<MigrationDemoApplication>(*args)
}
@RestController
class PersonController(private val personRepository: PersonRepository) {
@GetMapping("/person")
fun readAll() = personRepository.findAll()
@GetMapping("/person/{id}")
fun readOne(@PathVariable id: Long) = personRepository.findById(id)
}
interface PersonRepository : PagingAndSortingRepository<Person, Long>
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
val beans = beans {
bean<PersonHandler>()
bean<PersonRepository>()
}
val app = application {
import(beans)
server {
import(::routes)
codecs {
jackson()
}
}
mongodb {
embedded()
}
}
SpringFu, KoFu のサンプル
fun routes(handler: PersonHandler) = router {
"/person".nest {
GET("/{id}", handler::readOne)
GET("/", handler::readAll)
}
}
fun main(args: Array<String>) {
app.run(args)
}
https://github.com/ajavageek/springfunctional-migration
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
API / Microservices
•REST に否定的(?)なトークがいくつかあった
• Painless Microservices with Kotlin
• GraphQL Powered by Kotlin
•REST (JSON over HTTP) のイケてないところ
• 型がない、スキーマが曖昧、パースに CPU を多く消費する
• 乗り換え先は?
• GraphQL (for external), gRPC (for internal) 弊社だと Thrift
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
API / Microservices
•Kubanetes Kotlin DSL
•https://github.com/fkorotkov/k8s-kotlin-dsl
from Painless Microservices with Kotlin
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
API / Microservices
•分散 Tracing の話を、思ったよりちらほら聞いた
• https://opentracing.io/ https://zipkin.io/
• 国内で Opentracing, Zipkin をあまり使っている話は聞いたことないのだけど…
• 弊社で勉強会やったけど⼈の集まりが悪かったけど…
• https://line.connpass.com/event/86639/
•Microservices 特有の分散トレーシング
• ちゃんとフレームワーク⽐較のところでも取り上げられて、⽐較されていた
• マイクロサービスを使うなら、ぜひ導⼊しておきたい
LINE スタンプショップにおける zipkin 利⽤事例
ユーザー	token	認証
Product	情報取得
Ownership	情報取得
getProduct() API の例
KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情
Kotlin/Native の可能性
•Kotlin/Native はサーバーサイドでも使えるようになるのか?
• 上記の Kotlin/Native の発表を⾒た限り、Concurrency 周りが難しそう
• GC や Safe concurrency を実現するための、オブジェクトの扱いが難しそう
• Pure Kotlin の Ktor あたりが Native をちゃんとサポートしてくれれば…?
• いずれにしても、JVM 系のライブラリは⼀切は使えない
• 今後に期待
• 現状、特に Server-less な利⽤法では、Kotlin/JVM は Startup time の問題から厳しい
• サーバーレスで使いたいなら、GraalVM の⽅に期待したほうが良さそう?
from Kotlin/Native Concurrency Model

More Related Content

PDF
IL2CPPに関する軽い話
Wooram Yang
 
PPTX
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
LINE Corporation
 
PDF
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
UnityTechnologiesJapan002
 
PDF
The Next Generation for C# Developers
Takayoshi Tanaka
 
PPTX
Kotlin skeleton
Kenji Otsuka
 
PPTX
SpringOne Platform 2018 全体報告
Takuya Iwatsuka
 
PDF
お小遣いでKubernetesクラスタ
Nobuaki Aoki
 
PPTX
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
Masaya Aoyama
 
IL2CPPに関する軽い話
Wooram Yang
 
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
LINE Corporation
 
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
UnityTechnologiesJapan002
 
The Next Generation for C# Developers
Takayoshi Tanaka
 
Kotlin skeleton
Kenji Otsuka
 
SpringOne Platform 2018 全体報告
Takuya Iwatsuka
 
お小遣いでKubernetesクラスタ
Nobuaki Aoki
 
KubeCon Recap for Istio and K8s network performance @Kubernetes Meetup #11
Masaya Aoyama
 

What's hot (17)

PDF
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
Shinya Mori (@mosuke5)
 
PDF
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
 
PDF
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
Masaya Aoyama
 
PPTX
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
 
PPTX
祝 top-level project Apache Geode
Tomohiro Ichimura
 
PPTX
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
 
PPTX
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
Masaya Aoyama
 
PPTX
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
 
PPTX
Sinatra hijacker
Minori Tokuda
 
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
 
PDF
Cloud Foundry Container-to-Container Networking
Kazuto Kusama
 
PDF
RyuJIT
Takayoshi Tanaka
 
PDF
Kafka Connect(Japanese)
Roman Shtykh
 
PPTX
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
 
PPTX
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
Masaya Aoyama
 
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
PPTX
UniRx勉強会 reactive extensions inside(公開用)
wilfrem
 
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
Shinya Mori (@mosuke5)
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
 
OpenStack上に展開するContainer as a Service を本番で利用するために必要だったこと
Masaya Aoyama
 
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
 
祝 top-level project Apache Geode
Tomohiro Ichimura
 
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
 
サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術
Masaya Aoyama
 
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
 
Sinatra hijacker
Minori Tokuda
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
 
Cloud Foundry Container-to-Container Networking
Kazuto Kusama
 
Kafka Connect(Japanese)
Roman Shtykh
 
当番をランダムに割り当ててみる ~ on-dutyTable.py ~
genroku
 
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
Masaya Aoyama
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
UniRx勉強会 reactive extensions inside(公開用)
wilfrem
 
Ad

Similar to KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情 (6)

PDF
ヤフーにおけるkotlinとのかかわり #kotlinfest
Yahoo!デベロッパーネットワーク
 
PPTX
サーバサイド Kotlin
Hiroki Ohtani
 
PDF
KotlinでWebアプリ開発
Ryo Nakagawa
 
PDF
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
 
PPTX
Server Side Kotlin
yy yank
 
PDF
Kotlinのwebフレームワーク探訪
豊明 尾古
 
ヤフーにおけるkotlinとのかかわり #kotlinfest
Yahoo!デベロッパーネットワーク
 
サーバサイド Kotlin
Hiroki Ohtani
 
KotlinでWebアプリ開発
Ryo Nakagawa
 
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
 
Server Side Kotlin
yy yank
 
Kotlinのwebフレームワーク探訪
豊明 尾古
 
Ad

More from Hirotaka Kawata (13)

PDF
Kotest を使って 快適にテストを書こう - KotlinFest 2024
Hirotaka Kawata
 
PDF
本当にわかる Spectre と Meltdown
Hirotaka Kawata
 
PPTX
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
PDF
Micro Python で組み込み Python
Hirotaka Kawata
 
PDF
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
 
PDF
Introduction of PyCon JP 2014 in PyCon SG
Hirotaka Kawata
 
PDF
xv6 + mist32 + mruby
Hirotaka Kawata
 
PDF
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
Hirotaka Kawata
 
PDF
産学間連携推進室(AC部屋) 2012 成果報告会
Hirotaka Kawata
 
PDF
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
 
PDF
seccamp2012 チューター発表
Hirotaka Kawata
 
ODP
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
 
ODP
About University of Tsukuba Linux User Group
Hirotaka Kawata
 
Kotest を使って 快適にテストを書こう - KotlinFest 2024
Hirotaka Kawata
 
本当にわかる Spectre と Meltdown
Hirotaka Kawata
 
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
Micro Python で組み込み Python
Hirotaka Kawata
 
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
 
Introduction of PyCon JP 2014 in PyCon SG
Hirotaka Kawata
 
xv6 + mist32 + mruby
Hirotaka Kawata
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
Hirotaka Kawata
 
産学間連携推進室(AC部屋) 2012 成果報告会
Hirotaka Kawata
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
 
seccamp2012 チューター発表
Hirotaka Kawata
 
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
 
About University of Tsukuba Linux User Group
Hirotaka Kawata
 

KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情

  • 1. KotlinConf 2018 から⾒る 最近の Kotlin サーバーサイド事情
  • 2. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 川⽥ 裕貴 LINE Corporation 2016年⼊社 開発1センター LINE開発1室 P Part チーム スタンプ・絵⽂字関連サーバー開発 (Java, Kotlin?) IoT 関連サービスの Server-side 開発 (全て Kotlin) HIROTAKA KAWATA @hktechno
  • 3. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Microservices in LINE Shop •Armeria を利⽤した Thrift RPC で Microservices • Armeria: LINE 製 OSS HTTP/2 RPC ライブラリ https://line.github.io/armeria/ • LINE では、歴史的に Thrift を RPC のために利⽤している • 内部は、ほぼすべて RxJava2 を組み合わせた Non-blocking RPC, DB アクセス •過去に書いたブログ記事とか • RxJava 2とArmeriaでマイクロサービスを⾮同期化してみた • LINE スタンプショップにおける Zipkin 利⽤事例 • Elasticsearch を検索エンジンとして利⽤する際のポイント
  • 4. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 お仕事での Kotlin •IoT サービスのバックエンドを Kotlin で書いてます • 来⽉の LINE Developer Day 2018 に期待していてください • Spring Boot 2 + Armeria + Thrift RPC, REST API • もともと Spring MVC で書かれていたが… • リリースもしていないサービスなのに Armeria 化され、完全 Kotlin 化された… • Armeria も、Kotlin から使っていてそんなに不便なことはない • たまに微妙に感じることがあるので、落ち着いたら Kotlin 対応を⼊れたいと思っている
  • 5. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 KotlinConf 2018 - 感想 •Kotlin サーバーサイドの話も、思ったよりあった • サーバーサイドの⼈なので、サーバーサイドのトークを重点的に聞いた • ただ、Kotlin の話より、何かを Kotlin でやってみた系の話が多かった、Kotlin はおまけ •Coroutine がアツい • みんな本当に使いこなせるの?Reactive Streams との共存… •Amsterdam がいいところだった • US でやるカンファレンスより満⾜度⾼い、会場とかいろいろ
  • 6. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Server-side Kotlin •みんな使ってる? •イケてるところ • Null safety, Type safety • Functional programming, DSL •サーバサイド的に重要 • JVM ⾔語 • 既存の Java のリソースが使える、親和性が良い • パフォーマンス的な問題があまりない
  • 7. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Kotlin で Web フレームワーク何つかってる? •よく使われていそうなのは、以下の3つかな? •Ktor http://ktor.io/ •http4k https://www.http4k.org/ •Spring Boot https://spring.io/projects/spring-boot •Ktor, http4k は、Pure Kotlin, Lightweight • 全部⼊りがほしければ、やっぱり Spring Boot ? • Kotlin で Spring を快適に使うには ? from Komparing Kotlin Server Frameworks
  • 8. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Kotlin Web フレームワーク⽐較 •Swagger, Micrometer, Zipkin (Tracing) が使いたい! • http4k, Spring Boot •Coroutine (Non-blocking, Asynchronous API) が使いたい! • Ktor は JetBrains 謹製なのでもちろん対応 • Spring も Unofficial support がある (for webflux) •(個⼈的には) Ktor のこれからの成⻑に期待 • それまでは、Spring でもいいかなぁ?
  • 9. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 http4k val app = routes(     "bob" bind GET to { Response(OK).body("you GET bob") },     "rita" bind POST to { Response(OK).body("you POST rita") },     "sue" bind DELETE to { Response(OK).body("you DELETE sue") } ) val server = app.asServer(SunHttp(8000)).start() Ktor embeddedServer(Netty, 8080) { routing { get("/") { call.respondText("Hello, world!", ContentType.Text.Html) } } }.start(wait = true) Server as a Function
  • 10. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Spring Boot を Kotlin で快適に使うには… •SpringFu, KoFu を使って Functional!! DSL!! (ただし incubating feature) • やっぱり Spring 使いたいですよね • https://github.com/spring-projects/spring-fu •Annotation を多⽤した Configuration, Bean registration は⿊魔術に近い • 何が起きているのかわからない、辿れない • 解決策としての Functional configuration with Kotlin DSL で明⽰的な Configuration を実現 • 上記のプレゼンでは、Live coding で1つづつアノテーションを削っていく実演 from Kotlin and Spring Boot, a Match Made in Heaven
  • 11. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 SpringFu, KoFu のサンプル https://github.com/ajavageek/springfunctional-migration @SpringBootApplication class MigrationDemoApplication fun main(args: Array<String>) { runApplication<MigrationDemoApplication>(*args) } @RestController class PersonController(private val personRepository: PersonRepository) { @GetMapping("/person") fun readAll() = personRepository.findAll() @GetMapping("/person/{id}") fun readOne(@PathVariable id: Long) = personRepository.findById(id) } interface PersonRepository : PagingAndSortingRepository<Person, Long>
  • 12. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 val beans = beans { bean<PersonHandler>() bean<PersonRepository>() } val app = application { import(beans) server { import(::routes) codecs { jackson() } } mongodb { embedded() } } SpringFu, KoFu のサンプル fun routes(handler: PersonHandler) = router { "/person".nest { GET("/{id}", handler::readOne) GET("/", handler::readAll) } } fun main(args: Array<String>) { app.run(args) } https://github.com/ajavageek/springfunctional-migration
  • 13. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 API / Microservices •REST に否定的(?)なトークがいくつかあった • Painless Microservices with Kotlin • GraphQL Powered by Kotlin •REST (JSON over HTTP) のイケてないところ • 型がない、スキーマが曖昧、パースに CPU を多く消費する • 乗り換え先は? • GraphQL (for external), gRPC (for internal) 弊社だと Thrift
  • 14. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 API / Microservices •Kubanetes Kotlin DSL •https://github.com/fkorotkov/k8s-kotlin-dsl from Painless Microservices with Kotlin
  • 15. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 API / Microservices •分散 Tracing の話を、思ったよりちらほら聞いた • https://opentracing.io/ https://zipkin.io/ • 国内で Opentracing, Zipkin をあまり使っている話は聞いたことないのだけど… • 弊社で勉強会やったけど⼈の集まりが悪かったけど… • https://line.connpass.com/event/86639/ •Microservices 特有の分散トレーシング • ちゃんとフレームワーク⽐較のところでも取り上げられて、⽐較されていた • マイクロサービスを使うなら、ぜひ導⼊しておきたい
  • 16. LINE スタンプショップにおける zipkin 利⽤事例 ユーザー token 認証 Product 情報取得 Ownership 情報取得 getProduct() API の例
  • 17. KotlinConf 2018 から⾒る最近の Kotlin サーバーサイド事情 Kotlin/Native の可能性 •Kotlin/Native はサーバーサイドでも使えるようになるのか? • 上記の Kotlin/Native の発表を⾒た限り、Concurrency 周りが難しそう • GC や Safe concurrency を実現するための、オブジェクトの扱いが難しそう • Pure Kotlin の Ktor あたりが Native をちゃんとサポートしてくれれば…? • いずれにしても、JVM 系のライブラリは⼀切は使えない • 今後に期待 • 現状、特に Server-less な利⽤法では、Kotlin/JVM は Startup time の問題から厳しい • サーバーレスで使いたいなら、GraalVM の⽅に期待したほうが良さそう? from Kotlin/Native Concurrency Model